2016-06-02 1 views
0

를 찾을 수 없습니다, 향상 후에, 나는 모두가 향상의 HBM 전에HibernateQueryException 다음 hbm.xml에서 클래스

<class entity-name="ABC" name="model.ABC" table="ABC_TABLE"> 
<!-- property tags and id tag --> 
</class> 

<class entity-name="LazyABC" name="model.ABC" table="ABC_TABLE"> 
<!-- property tags and id tag --> 
</class> 

ABC_TABLE 테이블에 매핑되는 클래스 ABC 2 매핑 항목이있다. XML에는 ABC 클래스에 대한 엔티티 이름 = "ABC"맵핑 만 있습니다. 실행될 때, 이러한 개선 후

, 일본어 HQL 질의 코드

select new ABC(a.abcId, a.abcContent, a.abcEnding) from ABC a where.... 

예외가 발생.

org.springframework.orm.hibernate3.HibernateQueryException: Unable to locate class [ABC] 

org.hibernate.hql.ast.QuerySyntaxException: Unable to locate class [ABC] 

에 의한

예외입니다 그럼 난

select new model.ABC(a.abcId, a.abcContent, a.abcEnding) from ABC a where.... 
처럼, 단지 클래스의 전체 경로에 ABC 생성자 이름을 변경하려면, 인터넷에서 해결책을 발견

그런 다음 문제가 해결되어 쿼리 실행시 예외가 발생하지 않습니다!

그러나 최대 절전 모드 처리가 왜 그런지는 알 수 없습니다.

누군가가 내게 해결책이 될 수있는 근본적인 이유를 말할 수 있습니까?

감사합니다. :)

답변

1

우선 개체 기반 결과가 필요한 경우 Criteria API를 사용하십시오.

ABC 클래스에 대한 유효한 가져 오기가있을 수 있습니다. 그러나 HQL은 클래스의 패키지 이름을 알 수 없으므로이므로 입니다. 따라서 패키지 이름을 포함한 전체 경로를 제공해야합니다.