Pom*_*oma 13 java database orm ebean playframework-2.0
我有以下课程:
@Entity
@Table(name = "clients")
public class Client extends Model {
@Id
public int id;
@Formula(select = "inv.some_data",
join = "left join (select 1 as some_data) as inv")
public int someData;
public static Finder<String, Client> find =
new Finder<String, Client>(String.class, Client.class);
public static int countClientsWithData() {
return Client.find.where().gt("someData", 0).findRowCount();
}
}
Run Code Online (Sandbox Code Playgroud)
它有someData字段(播放框架将自动生成getter和setter).并且还在子句中countClientsWithData使用此字段where.现在,如果我这样做
int count = Client.countClientsWithData();
Run Code Online (Sandbox Code Playgroud)
它会NullPointerException在尝试执行查询时抛出
select count(*) from clients t0 where inv.some_data > ?
Run Code Online (Sandbox Code Playgroud)
看起来findRowCount无法识别@Formula注释中的连接.有关如何解决这个问题的任何想法?
更新的问题:缩小要findRowCount调用的问题.
一种可能的方法是使用findlist()方法并使用其size()方法来获取行数,而不是findRowCount()方法
return Client.find.where().gt("totalOrdersAmount", 0).findList().size();