ebean以多个oneToMany关系获取

时间:2014-04-02 00:01:26

标签: mysql sql playframework ebean

我玩了!使用ebean进行模型管理的框架项目。我有4个型号,A B C D. A和B是oneToMany,B和C是OneToMany,B和D是One To Many。现在我想要一个与所有相关B C D链接的A列表。

我现在拥有的是

A.find.fetch("Bs", new FetchConfig().query()).fetch("Bs.Cs", "Bs.Ds", new FetchConfig().query()).findList();

但性能真的很差,根据sql日志,sql查询没有按我的意愿加入。 有什么方法可以为所有这些使用查询连接吗? (即选择具有4个查询的所有A B C D并在本地加入它们而不是每个B的单独查询?)

1 个答案:

答案 0 :(得分:1)

新的FetchConfig.query()的javadoc ... 急切地将此路径中的bean作为单独的查询(而不是作为主查询的一部分)获取。

也就是说,如果要使用SQL连接而不是单独的查询,则应删除FetchConfig.query()。

也就是说,Ebean不会在单个查询中返回A B C D,因为这将导致笛卡尔积,并且它将自动拆分查询以避免这种情况。