मैं हाइबरनेट 4 का उपयोग कर रहा हूं और मेरे पास खोज परिणाम प्राप्त करने के लिए जेएसएफ पृष्ठ में एक फ़िल्टर है। पैरामीटर मान [568,903] org.hibernate.ejb.AbstractQueryImpl पर उम्मीद प्रकार [java.lang.Long] से मेल नहीं खाती: खोज के निष्पादन के दौरान मैं निम्नलिखित अपवादहाइबरनेट पैरामीटर मान [568 9 03] अपेक्षित प्रकार से मेल नहीं खाता [java.lang.Long]
java.lang.IllegalArgumentException हो रही है। validateParameterBinding (AbstractQueryImpl.java:370) org.hibernate.ejb.AbstractQueryImpl.registerParameterBinding (AbstractQueryImpl.java:343) पर org.hibernate.ejb.QueryImpl.setParameter (QueryImpl.java:370) पर org.hibernate पर । ejb.QueryImpl.set पैरामीटर (QueryImpl.java:323)
नीचे मेरा कोड स्निपेट है, मैं इस समस्या को कैसे ठीक कर सकता हूं?
private Long projectNo;
public Long getProjectNo() {
return projectNo;
}
public void setProjectNo(Long projectNo) {
this.projectNo = projectNo;
}
और मैं निम्नलिखित है डीएओ कक्षा में
String projectNo = filters.get("projectNo");
List<Predicate> criteria = new ArrayList<Predicate>();
if (projectNo!= null) {
ParameterExpression<String> pexp = cb.parameter(String.class, "projectNo");
Predicate predicate = cb.equal(emp.get(Project_.projectNo), pexp);
criteria.add(predicate);
}
TypedQuery<Project> q = entityManager.createQuery(c);
TypedQuery<Long> countquery = entityManager.createQuery(countQ);
q.setParameter("projectNo", projectNo); // error in this line
countquery.setParameter("projectNo", projectNo);
संपादित करें 1
public void getProjects(ProjectQueryData data) {
और ProjectQueryData
कक्षा में, मैं निर्माता के रूप में निम्नलिखित है
public ProjectQueryData (int start, int end, String field,
QuerySortOrder order, Map<String, String> filters) {
मिक्को, बहुत बहुत धन्यवाद, इसने वास्तव में समस्या को हल करने में मदद की है। बहुत सराहना की। – user75ponic
+1 अच्छा काम, ऐसा लगता है कि आप काम करने वाले एक समेकित उत्तर के लिए सबकुछ एक साथ टुकड़े करने में सक्षम थे! –