hibernate执行jpa子查询时的异常

时间:2013-07-25 06:42:43

标签: java

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 =?)]

2 个答案:

答案 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定义,会有所帮助。