当bean具有带@Formula注释的属性时,findRowCount不起作用

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调用的问题.

zaf*_*hal 0

一种可能的方法是使用findlist()方法并使用其size()方法来获取行数,而不是findRowCount()方法

return Client.find.where().gt("totalOrdersAmount", 0).findList().size();