मैं जेपीए उपयोग कर रहा हूँ द्वारा संस्थाओं के लिए क्वेरी करने के लिए कैसे और मैं निम्नलिखित इकाई है:अपने संग्रह मूल्य
@Entity
@Table(name="favorites_folders")
public class FavoritesFolder {
private static final long serialVersionUID = 1L;
@Id
private String id;
@NotNull
@Size(min = 1, max = 50)
public String name;
@ElementCollection(fetch = FetchType.LAZY)
@CollectionTable(
name="favorites_products",
[email protected](name="folder_id")
)
@Column(name="product_id")
@NotNull
private Set<String> productsIds = new HashSet<String>();
}
मुझे क्या करना चाहते हैं FavoritesFolder
संस्थाओं है कि स्ट्रिंग का एक सेट प्राप्त करने के लिए है "पसंदीदा -id "उनके productsIds
सदस्य सेट में।
क्या किसी को पता है कि यह मानदंड एपीआई में कैसे किया जा सकता है?
अद्यतन:
मैं निम्नलिखित एसक्यूएल में सोच रहा हूँ चाल करना चाहिए, लेकिन मैं कैसे या तो JPQL
या Criteria API
में यह करने के लिए यकीन नहीं है:
select * from favorites_folders join favorites_products on favorites_folders.id = favorites_products.folder_id where favorites_products.product_id = 'favorite-id'
मैं इस विषय हम आईडी के लिए reffering रहे हैं और इसलिए वे मैच के लिए समान होना जरूरी में पता की तरह एक मानदंड क्वेरी लिख सकते हैं, लेकिन मान लें कि हमारे पास 'संग्रह' है, इसके बजाय, क्या हम अनिवार्य रूप से एक ही चीज़ कर सकते हैं लेकिन किसी आइटम को 'बराबर' होने की आवश्यकता के बजाय, हमारे पास 'LIKE' का उपयोग करके एक आइटम MATCH हो सकता है? –
dominicbri7
@ dominicbri7 संबंधित [प्रश्न] पर (http://stackoverflow.com/questions/7066122/how-to-make-a-like-query-to-elementcollection-of-type-map?rq=1) मैंने पाया समाधान। रूट क्लास 'cb.like (से .join (" सेब ") पर जॉइन विधि का उपयोग करें। (" रंग "), टेक्स्ट पैरामीटर) – cirovladimir