query=entityManager.createQuery(" select a.birthDate from PersonalDetailsDomain a where a.empCode=(select b.empCode from User b where b.userId=?)");
query.setParameter(1,userId);
Date dob =(Date)query.getSingleResult();
EXCETION:
java.lang.IllegalArgumentException:org.hibernate.QueryException:无法解析属性:empCode:com.erp.hrms.User [从com.erp.hrms.newjoinee.PersonalDetailsDomain中选择a.birthDate a a.empCode =(从com.erp.hrms.User b中选择b.empCode,其中b.userId =?)]
答案 0 :(得分:0)
使用':userId'而不是'?'并且还使用方法createSQLQuery
进行本机SQL查询。
query=entityManager.createSQLQuery(" select a.birthDate from PersonalDetailsDomain a where a.empCode=(select b.empCode from User b where b.userId= :userId)");
query.setParameter("userId", userId);
Date dob =(Date)query.getSingleResult();
答案 1 :(得分:0)
您确定已正确映射User.empCode的字段(或相对访问者)吗?
附上User
定义,会有所帮助。