所以我有两个表:Users和AlertHistory。
我已将AlertHistory加入用户,如果我这样做:
List<User> users = new Model.Finder(Integer.class, User.class).setMaxRows(9).findList();
List<AlertHistory> ahc = users.get(3).getAlertHistoryCollection();
我将获得用户列表,每个用户都将拥有一组AlertHistory对象。
我想对Finder做什么,是返回AlertHistory为NOT NULL的用户列表。我试过各种版本:
new Model.Finder(Integer.class, User.class).where().isNotNull("alertHistoryCollection").setMaxRows(9).findList();
但无济于事。
答案 0 :(得分:0)
这里的问题是我定义的关系不正确。
在User.java
:
@OneToMany(cascade = CascadeType.ALL, fetch = FetchType.LAZY, mappedBy = "user")
private List<AlertHistory> alertHistoryList = new ArrayList<>();
和AlertHistory.java
:
@OneToOne(fetch = FetchType.LAZY, cascade = CascadeType.ALL)
@JoinColumn(name = "user_id")
一旦我正确地对关系进行了注释和输入,它就会按预期开始工作,这样如果User
已关联AlertHistory
,它们将填充,如果没有,则收集将是空。 .isNotNull()
现在按预期工作。