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:спящий режим Исключение при выполнения JPA суб запроса
java.lang.IllegalArgumentException: org.hibernate.QueryException: не удалось разрешить свойство: empCode из: com.erp.hrms.User [выберите .birthDate из com.erp.hrms.newjoinee.PersonalDetailsDomain a где a.empCode = (выберите b.empCode из com.erp.hrms.User b где b.userId =?)]
У вашего объекта «Пользователь» есть свойство «empCode» с геттерами и сеттерами? – mael
Поскольку вы пишете Pure SQL Query, а не HSQL, вам нужно указать имя таблицы, а не имя класса POJO для этой отдельной таблицы. –
. Вы просмотрели эти другие вопросы о jpa & subquries: http://stackoverflow.com/questions/13460235/jpa-2-критерии-использование-в-и-подзапросы http://stackoverflow.com/questions/11187188/jpa-criteria-query-with-subquery http://stackoverflow.com/questions/4662336/subquery -in-select-clause http://stackoverflow.com/questions/4483576/jpa-2-0-criteria-api-subqueries-in-expressions http://stackoverflow.com/questions/7269010/jpa-hibernate-subquery -в-с-п –