내 앱은 리그를 보유하고 있으며 각 리그는 여러 경기를 가질 수 있습니다. 나는 .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)은 "select"보다 기본값입니다. – Marvo
또한 cacade = "all"없이 저장할 수 있습니다. "개체 참조가 저장되지 않은 일시적인 인스턴스를 참조하십시오 - 플러시하기 전에 일시적인 인스턴스 저장" – mprabhat
그 중 하나가 작동하지 않습니다. – Marvo