当没有结果应该返回时,OneToMany会返回1个结果?
问题描述:
我有一个2种型号,第二个是映射到相同的第一模型两次,用具体的数值(它有一个多对多表中的与附加价值的作用):当没有结果应该返回时,OneToMany会返回1个结果?
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()
=> 1!
为什么1?它应该是0.
这会导致关于布尔和其他一些未解释的错误。
我该如何解决?我做错了什么?
谢谢。
答
http://www.avaje.org/ebean/introquery_joinquery.html
看来,使用“获取连接”在上面的链路描述的接合时,据推测这是Ebean的行为目前。然而,你可以解决,通过执行“查询加盟”像这样的一对多关系:
List<Order> orders =
Ebean.find(Order.class)
.fetch("customer", new FetchConfig().query())
.findList();
+0
我试过了,但没有改变任何东西:/ – 2012-08-16 09:15:10
答
我遇到了同样的问题,并且能够通过添加标识列到辅助表来解决它(ModelB )。我没有调查原因,但我认为Ebean在这种情况下需要桌面上的主键。
从列表中取第一个元素并告诉我们它是什么。它是否为空?或者这是一个具有价值的对象? – Fixus 2012-04-26 05:57:23
这是ModelB的一个对象,但所有的字段都是null。我再次检查数据库,并且表是空的! – 2012-04-26 07:02:49
尝试在ModelA中设置默认值:列表 items = new列表(); –
Fixus
2012-04-26 07:31:55