2014-01-21 4 views
0

그래서 두 개의 테이블 인 사용자와 AlertHistory가 있습니다.플레이 프레임 워크는 조인 된 테이블을 쿼리 (ExpressionList)로 사용합니다.

내가 할 경우 있도록 내가, 사용자에 AlertHistory에 가입 한 :

List<User> users = new Model.Finder(Integer.class, User.class).setMaxRows(9).findList(); 
List<AlertHistory> ahc = users.get(3).getAlertHistoryCollection(); 

내가 사용자의 목록을 얻을 것이다, 각 사용자가 AlertHistory 개체의 컬렉션을해야합니다.

Finder에서 수행하고자하는 작업은 AlertHistory가 NULL이 아닌 사용자 목록을 반환하는 것입니다. 다양한 버전을 시도했습니다 :

new Model.Finder(Integer.class, User.class).where().isNotNull("alertHistoryCollection").setMaxRows(9).findList(); 

아니요.

+0

'isNotNull()'은 내 DB에서 정상적으로 작동하므로 이것을 재현 할 수 없습니다. 더 자세한 정보를 추가 할 때주의해야합니까? – t0mppa

답변

0

여기서 문제는 내가 정의한 관계가 정확하지 않다는 것입니다.

@OneToMany(cascade = CascadeType.ALL, fetch = FetchType.LAZY, mappedBy = "user") 
private List<AlertHistory> alertHistoryList = new ArrayList<>(); 

AlertHistory.java에 :

User.java에서

@OneToOne(fetch = FetchType.LAZY, cascade = CascadeType.ALL) 
@JoinColumn(name = "user_id") 

나는 관계가 주석하고 올바르게 입력있어 후에는 예상대로 일을 시작 그래서 그 User은 'AlertHistory 관련된 경우 그러면 컬렉션이 비게됩니다. .isNotNull()이 이제 예상대로 작동합니다.