2017-01-24 2 views
0

나는 게으른로드 엔터티 사용자 인 테이블 멤버가 있습니다.게으른로드 엔터티의 속성을 기반으로 필터링하는 방법

Member User 
------ ---- 
id  id 
User  name 

DetachedCriteria dc = DetachedCriteria.forClass(Member.class, "m"); 
dc.setFetchMode("user",FetchMode.JOIN); 
dc.add(Restrictions.like("user.name", "alpha", MatchMode.ANYWHERE)); 
Criteria criteria = dc.getExecutableCriteria(session.getSession()); 
List<Membership> list = criteria.list(); 

최대 절전 모드 예외가 발생하여 구성원 테이블에서 user.name 등록 정보를 확인할 수 없습니다.

지연로드 관련 엔티티의 속성 제한 사용 방법은 무엇입니까?

답변

1

사용자 속성에 액세스하려면 별칭을 만들어야합니다. 작동하려면 다음으로 변경하십시오.

DetachedCriteria dc = DetachedCriteria.forClass(Member.class, "m"); 
dc.createAlias("user", "u"); 
dc.add(Restrictions.like("u.name", "alpha", MatchMode.ANYWHERE)); 
Criteria criteria = dc.getExecutableCriteria(session.getSession()); 
List<Membership> list = criteria.list(); 
관련 문제