2014-04-02 86 views
1

我有一個玩!使用ebean進行模型管理的框架項目。我有4個模型,A B C D. A和B是oneToMany,B和C是OneToMany,B和D是一對多。現在我想的是與一個鏈接的列表中的所有相關BC D.ebean取多個oneToMany關係

什麼我現在已經是

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

但性能是真窮,並根據SQL日誌的SQL查詢未加入如我所願。 有沒有什麼辦法可以爲它們全部使用查詢連接? (即選擇具有4個查詢所有ABCD並在本地加入他們的行列,而不是單獨的查詢對每個B?)

回答

1

的javadoc新FetchConfig.query() ... 預先抓取在這條道路豆作爲一個單獨的查詢(而不是作爲主查詢的一部分)。

也就是說,如果要使用SQL連接而不是單獨的查詢,則應刪除FetchConfig.query()。也就是說,Ebean不會在單個查詢中返回A B C D,因爲這會導致笛卡爾積,並且它會自動分解查詢以避免這種情況。