-3
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();

例外:

java.lang.IllegalArgumentException: org.hibernate.QueryException: 无法解析属性:empCode of: com.erp.hrms.User [ select a.birthDate from com.erp.hrms.newjoinee.PersonalDetailsDomain a where a.empCode=(select b.empCode 来自 com.erp.hrms.User b where b.userId=?)]

4

2 回答 2

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();
于 2013-07-25T06:50:26.753 回答
0

您确定正确映射了 User.empCode 的字段(或相关访问器)吗?
附上User定义,会有所帮助。

于 2013-07-25T06:50:31.203 回答