2016-11-23 6 views
0

내 데이터에 대한 올바른 쿼리에 문제가 있습니다.봄 최대 절전 기준 중첩 된 개체

@Id 
@GeneratedValue 
private Integer id; 

@Size(min = 1, message = "") 
@Column(unique = true) 
@UniqueUserName(message = "") 
private String name; 

@Size(min = 1, message = "") 
@Email 
private String email; 

@Size(min = 5, message = "") 
private String password; 

private boolean enabled; 

@ManyToMany 
@JoinTable 
private List<Role> roles; 

@OneToOne 
@JoinColumn 
private PersonalData personalData; 

@OneToMany(cascade = CascadeType.REMOVE) 
@JoinColumn(name = "OWNED_USER_ID") 
private List<User> userList; 

그건 내 클래스 사용자입니다. 그리고 나는 소유 한 모든 사용자의 목록을 사용자별로 얻고 싶습니다.

여기 내 코드입니다 :

DetachedCriteria detachedCriteria = DetachedCriteria.forClass(User.class); 
detachedCriteria.setProjection(Property.forName("userList.id")); 
Session session = entityManager.unwrap(Session.class); 
Criteria criteria = session.createCriteria(OfferStorage.class); 
criteria.add(Subqueries.propertyIn("user.id", detachedCriteria)); 
criteria.list(); 

그리고 속성을 확인할 수 없습니다 오류 다음 날 반환의 : 유 userList.user.id를 사용하는 경우 그것은 동일합니다

userList.id. 어떤 아이디어?

답변

0

음 빠릅니다.

이 그것으로 어떤 다른 것 문제가 대답하면

DetachedCriteria detachedCriteria = DetachedCriteria.forClass(User.class); 
    detachedCriteria.createAlias("userList", "userList"); 
    detachedCriteria.add(Restrictions.eq("id", userId)); 
    detachedCriteria.setProjection(Property.forName("userList.id")); 

    Session session = entityManager.unwrap(Session.class); 
    Criteria criteria = session.createCriteria(OfferStorage.class); 
    criteria.add(Subqueries.propertyIn("user.id", detachedCriteria)); 
    criteria.list();