我有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。
这导致关于布尔值和其他一些原因不明的错误。
我该如何解决?我做错了什么?
感谢。
答案 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需要一个主键。