2013-06-24 6 views
5

मेटामोडेल उपयोग के बिना केस-असंवेदनशील मानदंड क्वेरी कैसे बनाएं?जेपीए 2 मानदंड एपीआई केस मेटामोडेल उपयोग के बिना असंवेदनशील स्थिति

मैं इस तरह कुछ करने के लिए कोशिश कर रहा हूँ:

CriteriaBuilder builder = entityManager.getCriteriaBuilder(); 
    CriteriaQuery<Resident> criteria = builder.createQuery(Resident.class); 
    Root<Resident> personRoot = criteria.from(Resident.class); 

    criteria.where(builder.and(
      builder.equal(builder.upper(personRoot.get("firstName")), filter.getFirstName())), //ERROR 
      builder.equal(personRoot.get("lastName"), filter.getLastName())); 

लेकिन यह त्रुटि उत्पन्न:

method upper in interface javax.persistence.criteria.CriteriaBuilder cannot be applied to given types; [ERROR] required: javax.persistence.criteria.Expression [ERROR] found: javax.persistence.criteria.Path

उत्तर

4

कोशिश

Expression<String> firstName = personRoot.get("firstName"); 

criteria.where(builder.and(
      builder.equal(builder.upper(firstName), filter.getFirstName())), 
      builder.equal(personRoot.get("lastName"), filter.getLastName())); 

यह की तरह लगता है विधि ऊपरी के साथ कुछ समस्या है पथ स्वीकार करना

4

इसे संकलित करना चाहिए:

...builder.upper(personRoot.<String>get("firstName"))... 
संबंधित मुद्दे