0

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

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

在模型 A 中:

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

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

为什么是 1?它应该是 0。

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

我该如何解决?

4

2 回答 2

1

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

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

List<Order> orders =   
Ebean.find(Order.class)  
    .fetch("customer", new FetchConfig().query())  
    .findList(); 
于 2012-05-08T19:57:28.303 回答
0

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

于 2013-11-15T07:35:59.210 回答