0
내 응용 프로그램에 Hibernate 3.2.5를 사용하고 있습니다.HQL : 암시 적 연결이 작동하지 않음
나는 Dept
테이블과 Employees
테이블을 가지고 있습니다.
사이 Dept.java
private int deptId;
private String deptName;
private Map empMap = new HashMap();
//Getters and Setters
Employees.java
private int empId;
private String empName;
private int deptId;
private int age;
private String sex;
private Dept dept;
//Getters and Setters
협회이 두 :
<map name="empMap" inverse="false" cascade="all">
<key column="DEPT_ID"></key>
<map-key formula="EMP_ID" type="integer"></map-key>
<one-to-many class="com.jdbc.Employees"/>
</map>
나는 아래 문을하려고 할 때 :
Query hqlQuery = session.createQuery("from Dept dept where dept.empMap.empName = 'XYZ'");
나는 아래의 예외를 얻고있다 :
org.hibernate.QueryException: illegal attempt to dereference collection [dept0_.DEPT_ID.empMap] with element property reference [empName] [from com.jdbc.Dept dept where dept.empMap.empName = 'XYZ']
이 친절하게 나를 암시 여기 조인을 사용하는 방법을 알려 주시기 바랍니다. 의사를 읽으면서 나는 실종 된 것을 알아낼 수 없습니다.
답장을 보내 주셔서 감사합니다. 스레드를 종료하기 전에 한 가지 명확히해야합니다 : Hibernate doc의 HQL 섹션에서이 쿼리를 보았습니다 :'cust.name.firstName from customer as cust'를 선택하십시오.이 쿼리에서'name'이'String' 타입 속성 인 경우 'Customer' 클래스 다음에'firstName'은 무엇입니까? 명확히하십시오. 감사합니다. – user182944
'name'은'String'이 될 수 없습니다. 이것은 컴포넌트 유형, 즉 다른 클래스라고 생각합니다. – lunr