このパターンで Hibernate にマップされた 3 つの Java オブジェクトを使用しています。
TaskModel.class -> 1:N -> TaskModelPropertiesGroup.class -> 1:N -> TaskModelProperty.class
プロジェクトの展開時に、次の例外が発生します。
org.hibernate.loader.MultipleBagFetchException: cannot simultaneously fetch multiple bags
はい、私は宿題をしました。それについていくつかの回答を見ましたが、hbm.xmlファイルを変更する方法については誰も知りませんでした。
1 @LazyCollection(LazyCollectionOption.FALSE)
を既に使用しているため、マッピングでそれを変更する方法がわかりませんlazy="false"
。
2 セットするリストを変更する
クラス内で List<> を Set<> に変更しようとしましたが、これが方法だとは思いません...
ここに私のマッピングがあります:
<hibernate-mapping>
<class dynamic-insert="false" dynamic-update="false" mutable="true" name="com.spectotechnologies.website.projects.helper.TaskModel" entity-name="com.spectotechnologies.website.projects.helper.TaskModelComplete" optimistic-lock="version" polymorphism="implicit" select-before-update="false" table="projects_tasksModels">
<id name="keyTaskModel">
<generator class="native"/>
</id>
<property name="name"/>
<property name="description"/>
<!-- Complete -->
<bag name="propertiesGroups" table="projects_tasksModelsPropertiesGroups" lazy="false" fetch="join" cascade="all">
<key column="keyTaskModel"/>
<one-to-many class="com.spectotechnologies.website.projects.helper.TaskModelPropertiesGroupComplete" />
</bag>
</class>
</hibernate-mapping>
<hibernate-mapping>
<class dynamic-insert="false" dynamic-update="false" mutable="true" name="com.spectotechnologies.website.projects.helper.TaskModelPropertiesGroup" entity-name="com.spectotechnologies.website.projects.helper.TaskModelPropertiesGroupComplete" optimistic-lock="version" polymorphism="implicit" select-before-update="false" table="projects_tasksModelsPropertiesGroups">
<id name="keyTaskModelPropertiesGroup">
<generator class="native"/>
</id>
<property name="keyTaskModel"/>
<property name="name"/>
<property name="description"/>
<!-- Complete -->
<bag name="properties" table="projects_tasksModelsProperties" lazy="false" fetch="join" cascade="all">
<key column="keyTaskModelPropertiesGroup"/>
<one-to-many class="com.spectotechnologies.website.projects.helper.TaskModelProperty" />
</bag>
</class>
</hibernate-mapping>