Model OneToMany在不应返回结果的情况下返回1个结果?

Model OneToMany在不应返回结果的情况下返回1个结果?,model,playframework-2.0,ebean,Model,Playframework 2.0,Ebean,我有两个模型,第二个是映射到同一个第一个模型两次,带有特定的值(它有一个多表的作用,带有附加值): 在ModelA中: @OneToMany(mappedBy="child") List<ModelB> items; @OneToMany(mappedBy=“child”) 清单项目; 如果数据库中没有ModelB的条目,我将执行一个modelA.items.size()=>1 为什么是1?应该是0 这会导致布尔值和其他一些无法解释的错误 我怎样才能修好它?我做错了什么 谢谢。

我有两个模型,第二个是映射到同一个第一个模型两次,带有特定的值(它有一个多表的作用,带有附加值):

在ModelA中:

@OneToMany(mappedBy="child")
List<ModelB> items;
@OneToMany(mappedBy=“child”)
清单项目;
如果数据库中没有ModelB的条目,我将执行一个
modelA.items.size()
=>1

为什么是1?应该是0

这会导致布尔值和其他一些无法解释的错误

我怎样才能修好它?我做错了什么

谢谢。

看起来,当使用上面链接中描述的“获取连接”进行连接时,这可能是Ebean当前的行为。但是,您可以通过对OneToMany关系执行“查询联接”来解决此问题,如下所示:

List<Order> orders =   
Ebean.find(Order.class)  
    .fetch("customer", new FetchConfig().query())  
    .findList(); 
列出订单=
Ebean.find(Order.class)
.fetch(“客户”,新建FetchConfig().query())
.findList();

我遇到了同样的问题,并通过向次表(ModelB)添加一个标识列来解决它。我没有调查原因,但我想在这种情况下,Ebean需要表上的主键。

从列表的第一个元素中选取,告诉我们是什么。它是空的吗?或者这是一个有值的对象?它是ModelB的对象,但所有字段都为null。我仔细检查了数据库,表是空的!尝试在ModelA中设置默认值:List items=new List();
List<Order> orders =   
Ebean.find(Order.class)  
    .fetch("customer", new FetchConfig().query())  
    .findList();