डेटा रिपोजिटरी विधि को सीधे कॉल करते समय projection
निर्दिष्ट करना संभव है? यहाँ भंडार कोड है - ध्यान दें मैं बाकी के माध्यम से इसे बेनकाब करने के लिए नहीं करना चाहते हैं, तो इसके बजाय मैं एक सेवा या नियंत्रक से यह कॉल करने के लिए सक्षम होने के लिए करना चाहते हैं:स्प्रिंग एमवीसी नियंत्रकों में स्प्रिंग डेटा अनुमानों को कैसे लागू करें?
@PreAuthorize(value = "hasRole('ROLE_ADMIN')")
@RequestMapping(value = "https://stackoverflow.com/users/employee")
public Page<User> listEmployees(Pageable pageable) {
return usersRepository.findEmployeeUsers(pageable);
}
: एक नियंत्रक मैं यह करने में तो
@RepositoryRestResource(exported = false)
public interface UsersRepository extends PagingAndSortingRepository<User, Long> {
@Query(value = "SELECT u FROM User u WHERE ....")
public Page<User> findEmployeeUsers(Pageable p);
}
projection
findEmployeeUsers
विधि के लिए निर्दिष्ट करने का कोई तरीका है जब इसे ऊपर की तरह सीधे कहा जाता है?
मुझे एहसास है कि ऊपर दिया गया कोड किसी के लिए अजीब लग सकता है ... आरईएसटी के माध्यम से भंडार का खुलासा करना और भंडार में @PreAuthorize
चीज़ डालना संभव होगा। थॉट कंट्रोलर सुरक्षा जांच करने के लिए और अधिक सही जगह है - यह परीक्षण करने के लिए और अधिक प्राकृतिक और साथ ही सरल है।
तो, projection
चीज़ किसी भी तरह से सीधे एक रिपोजिटरी विधि में पारित हो सकती है?
धन्यवाद, यह एक सभ्य दृष्टिकोण की तरह दिखता है! दुर्भाग्यवश मैं इसका परीक्षण नहीं कर सकता क्योंकि मुझे स्प्रिंगबूट 1.2.2 (3) के साथ बंद कर दिया गया है - इसमें वसंत-डेटा प्रोजेक्ट के लैटर जीए संस्करण नहीं हैं ... मुझे एहसास है कि यह अलग-अलग प्रश्नों का विषय है - लेकिन इस चीज़ का परीक्षण करने के लिए GA को स्प्रिंगबूट 1.2.2 या 1.2.3 ऐप में डालने का कोई तरीका है? – Barbadoss
यहां बताया जा सकता है कि यह कैसे किया जा सकता है - http://spring.io/blog/2015/03/26/what-s-new-in-spring-data-fowler, कोशिश करने जा रहा है और नए अनुमान बुनियादी ढांचे को आजमाएं। – Barbadoss
@OliverGierke ऐसा प्रतीत होता है कि यह अब स्प्रिंग डेटा के वर्तमान संस्करण में काम नहीं करता है? प्रदान किए गए उदाहरण का उपयोग करते हुए, जैक्सन ने 'com.fasterxml.jackson.core.JsonGenerationException फेंकता है: किसी ऑब्जेक्ट को शुरू नहीं कर सकता, फ़ील्ड नाम की उम्मीद कर रहा है' –