2012-10-27 2 views
2
@Entity 
@Table(name="users") 
public class User implements Serializable 
{ 
    private List<Request> sentRequest; 
    private List<Request> receivedRequest; 
    private Profile profile; 
} 

public List<Object> getUserProfiles(Integer userid) 
{ 
    query = em.createQuery(
      "SELECT p from Profile p1,Profile p2 WHERE " + 
      "p1.user.sentRequest.sender.id (:id) NOT IN " + 
      " p2.user.receivedRequest.receiver.id and " + 
      "p1.user.id NOT IN (:id)" 
     ).setParameter("id",userid); 

나는 위 쿼리를 시도하여 불법적 인 컬렉션을 취소하려고합니다. OneToOne 프로필 및 사용자 - - 나는 모든 사용자가 그 요청을 보내 자신의 프로필을 제외하지 않은 프로파일 선택합니다JPA : 컬렉션을 역 참조하려고 시도하는 불법적 인 시도

OneToMany 요청 의 관계는
사용자입니다.

답변

1

문제는 매개 변수는이 p1.user.sentRequest.sender.id NOT IN (:id)

같은 NOT IN 이후 여야합니다 코드 p1.user.sentRequest.sender.id (:id) NOT IN이 부분입니다
관련 문제