我的應用有聯盟,每個聯盟可以有任意數量的比賽。我使用.hbm.xml文件來建立聯盟和比賽之間的聯繫。我配置如下它:休眠:多對多關聯爲空
<set name="competitions" table="leagueCompetitions" lazy="false">
<meta attribute="property-type"><![CDATA[Set<Competition>]]></meta>
<meta attribute="default-value"><![CDATA[new HashSet<Competition>()]]></meta>
<key column="leagueId"/>
<many-to-many column="competitionId"
unique="true"
lazy="false"
class="com.example.model.Competition"/>
</set>
我有獲取聯賽的名單,基本上可以歸結爲
Query query = session.createQuery("from League");
return query.list();
我寫了一些代碼來算比賽中DAO方法,它是儘可能簡單
if (league.getCompetitions().size() > 0) { ... blahditty blah ... }
但它失敗了,因爲getCompetitions()總是一個空集。
問題:當我使用LeagueDAO.list()獲取聯賽列表時,是否不應該爲每個聯盟都加載所有比賽?
謝謝,但似乎沒有任何區別Hibernate的行爲。和[我早前閱讀](https://community.jboss.org/wiki/AShortPrimerOnFetchingStrategies)比「選擇」是默認的。 – Marvo
也是你可以把它保存而不cacade =「所有」,我覺得你應該得到的例外,如「對象引用一個未保存的瞬態的實例 - 沖洗之前保存的瞬態的實例」 – mprabhat
這也不工作。 – Marvo