2015-02-27 4 views
6

में एक सूची में एक स्ट्रिंग वाली इकाइयां खोजें मेरे पास एक साधारण MongoRepository है और इसकी इकाइयों में List<String> tags विशेषता है। क्या भंडार में findBy विधि जोड़ने का कोई तरीका है? जैसेस्प्रिंग डेटा रिपोजिटरीज

List<...> findByInTags(@Param("tag") String tag); 

कुछ तो वहाँ सूची tags में दिए गए स्ट्रिंग tag युक्त सभी संस्थाओं लौटा दी जाएगी।

मैंने इसे RestController और एक कस्टम findByTag एंडपॉइंट के साथ हल करने का प्रयास किया। लेकिन मैं परिणाम प्रारूप के लिए HATEOAS का उपयोग करना चाहता हूँ।

उत्तर

15
वसंत-डेटा-मोंगो इकाई परीक्षण से

: Person.java

@Document 
public class Person extends Contact { 
    private String firstname; 
    private String lastname; 
    ... 
    private Set<Address> shippingAddresses; 

और PersonRepository

/** 
* Returns the {@link Person} with the given {@link Address} as shipping address. 
* 
* @param address 
* @return 
*/ 
Person findByShippingAddresses(Address address); 

IIRC, वाक्य रचना इस तरह का भी संग्रह के साथ काम करता है। तो आप

सूची < ...> findByTag (स्ट्रिंग टैग) का उपयोग करने में सक्षम होना चाहिए;

+0

ग्रेट, मैंने कभी इसके बारे में सोचा नहीं। यह 'सूची ' के साथ भी काम करता है और न केवल 'सेट'। – alexvetter

+0

हां, मुझे लगता है कि यह java.util.Collection इंटरफेस पर आधारित है, इसलिए सभी उप-इंटरफेस भी काम करना चाहिए। –

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