2012-04-19 13 views
10

हाय का उपयोग कर के लिए खोज

मैं कैसे मानदंड क्वेरी के लिए एक स्ट्रिंग को पूर्णांक डाली कर सकते हैं?जेपीए - मानदंड क्वेरी -, पूर्णांक "की तरह"

यानी

Predicate predicate = criteriaBuilder.like((Expression) root.get(filterKey), 
        "%" + filterValue + "%"); 

मैं DataTable घटक के लिए फिल्टर बनाने के लिए वान .... और आईडी मूल्य के लिए यानी मैं इस तरह फिल्टर प्राप्त करना चाहते हैं:

अगर मैं टाइप "1" मैं लूंगा युक्त "1" आईडी के साथ सभी आइटम मिल (223,122 आईडी अभी भी सही हो जाएगा)

उत्तर

8

मैं इस अपने आप उपयोग नहीं किया है, लेकिन यह अन्य प्रश्न:

Using JPA 2.0 Criteria API and cast causes generated JPQL to fail in Hibernate

.as(String.class)root.get(filterKey) के बाद आप जो चाहते हैं उसे पूरा करने के लिए उपयोग करते हैं।

आप हाइबरनेट उपयोग कर रहे हैं, मेरे लिए reportedbugs

+1

यह (हाइबरनेट '4.3.5.final' के लिए) काम करता है। –

2

यह हल समस्या से अवगत हो:

Expression<String> filterKeyExp = root.get(filterKey).as(String.class); 
filterKeyExp = criteriaBuilder.lower(filterKeyExp); 

Predicate predicate = criteriaBuilder.like(filterKeyExp ,"%" + filterValue.trim().toLowerCase() + "%"); 
संबंधित मुद्दे