2013-06-28 3 views
0

매개 변수가 두 개일 경우 usernameprojectname 인 경우 특정 프로젝트를 쿼리 할 수 ​​있습니까? 특히 다음 쿼리에 어떤 문제가 있습니까?DB에서 목록의 특정 항목을 선택하는 방법은 무엇입니까?

class Person { 
    private String name; 
    private List<Project> projects; 
} 

class Project { 
    private String projectname; 
} 

검색어 :

SELECT Project FROM Person p WHERE p.name := username AND p.projects.projectname =: projectname 

결과 :

illegal attempt to dereference collection [person0_.name.projects] with element property reference [projectname] 

답변

1

당신이 당신의 POJO의 컬렉션 작업을하고 있기 때문에, 당신은 열심히 그 위에 작업을 수행하기 전에 컬렉션을로드 할 수 있습니다.

시도

SELECT Project FROM Person p left join fetch p.projects as projs WHERE 
         p.name := username AND projs.projectname =: projectname 

하십시오 refer association joins in HQL

(테스트하지 않았다)
관련 문제