我正在使用Play Framework 2(Java)和Ebean。在我的模型类中,我classA
与classB
具有一对多的关系。因此,classB
的关联表格中包含null
字段或classA
实体的ID。
我想检索有一个或多个关联classA
实体的classB
行数。在SQL术语中,我想要做的是:
select count(id) from classA where id in (select classA_id from classB);
如何使用Play Framework / Ebean执行此操作?
我认为应该有一个内置方法来执行这个简单的任务,而不必使用原始SQL。请注意,从数据库中获取长列表然后计算Java中的条目数是不可行的:我想让数据库完成工作。
答案 0 :(得分:1)
看看documentation,他们很好地解释了如何构建查询。
int count =
Ebean.find(classB.class)
.fetch("id")
.where("classA_id IS NOT NULL")
.findRowCount();
如果您想要" distinct"结果,将.setDistinct(true)
添加到查询中。