2014-05-23 6 views
9

मैं डेटाबेस प्रश्नों के लिए वसंत CrudRepository का उपयोग कर रहा हूं। एक बुलियन संपत्ति के लिए मैं एक विधि हस्ताक्षर कैसे बना सकता हूं (स्वयं SQL चयन कथन नहीं लिख रहा हूं)?स्प्रिंग क्रूड रिपोजिटरी के साथ बूलियन संपत्ति के लिए कैसे पूछें?

निम्नलिखित काम नहीं करता:

class MyEntity { 
     private boolean active; 
} 


interface MyEntityRepository implements CrudRepository<MyEntity, Long> { 
    List<MyEntity> findActive(); //or also: findNotActive(); 
} 

उत्तर

14

मुझे क्या करना होगा:

interface MyEntityRepository implements CrudRepository<MyEntity, Long> { 
    List<MyEntity> findByActive(Boolean active); 
} 

फिर सेवा परत होगा

public class MyEntityServiceImpl implements MyEntityService{ 


    public List<MyEntity> findActive() { 
     return myEntityRepository.findByActive(true); 
    } 
} 

अद्यतन

रूप @OliverGierke से कहा आप ऐसा करके और भी अधिक अपने भंडार को आसान बनाने में कर सकते हैं:

interface MyEntityRepository implements CrudRepository<MyEntity, Long> { 
    List<MyEntity> findByActiveTrue(); //you could also use findByActiveFalse 
} 

सभी समर्थित कीवर्ड के लिए आप अनुभाग

क्वेरी निर्माण

की

देखना चाहिए reference documentation

+0

ठीक है कि वास्तव में परिणाम को वास्तव में एक बुलियन मूल्य पर जोड़ने से बेहतर तरीका है। – membersound

+0

@membersound शायद हां! – geoand

+8

ग्रेट उत्तर, यदि आप प्रत्येक कॉल के लिए पैरामीटर की आपूर्ति नहीं करना चाहते हैं तो आप सीधे 'findByActiveTrue()' का उपयोग करने के विकल्प को जोड़ना चाहेंगे। –

संबंधित मुद्दे

 संबंधित मुद्दे