当没有结果返回时,OneToMany返回1个结果?

时间:2012-04-25 13:37:23

标签: model playframework-2.0 ebean

我有2个模型,第二个是映射到相同的第一个模型两次,具有特定值(它具有添加值的ManyToMany表的作用):

public class ModelB extend Model {
    public ModelA parent;
    public ModelA child;
    public String value;
    public boolean verified = true;
}

在ModelA中:

@OneToMany(mappedBy="child")
List<ModelB> items;

如果ModelB的数据库中没有条目,我会modelA.items.size() =&gt; 1!

为什么1?它应该是0。

这导致关于布尔值和其他一些原因不明的错误。

我该如何解决?我做错了什么?

感谢。

2 个答案:

答案 0 :(得分:1)

http://www.avaje.org/ebean/introquery_joinquery.html

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

List<Order> orders =   
Ebean.find(Order.class)  
    .fetch("customer", new FetchConfig().query())  
    .findList(); 

答案 1 :(得分:0)

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