冬眠初心者です。誰かが私が持っている次のクエリについてコメントできれば素晴らしいと思います:
親クラスがあり、各親には複数の子がいるとします。したがって、親クラスのマッピング ファイルは次のようになります。
親.hbm.xml
<hibernate-mapping >
<class name="org.demo.parent" table="parent" lazy="true">
<cache usage="read-write" region="org.demo.parent"/>
<id name="id" column="id" type="integer" length="10">
<generator class="native">
</generator>
</id>
<property name="name" column="name" type="string" length="50"/>
<set name="children" lazy="true">
<cache usage="read-write" region="org.demo.parent.children" />
<key column="parent_id"/>
<one-to-many class="org.demo.children"/>
</set>
</class>
</hibernate-mapping>
children.hbm.xml
<hibernate-mapping >
<class name="org.demo.children" table="children" lazy="true">
<cache usage="read-write" region="org.demo.children"/>
<id name="id" column="id" type="integer" length="10">
<generator class="native">
</generator>
</id>
<property name="name" column="name" type="string" length="50"/>
<many-to-one name="parent_id" column="parent_id" type="integer" length="10" not-null="true"/>
</class>
</hibernate-mapping>
したがって、セットの子に対して、関連付けをキャッシュする領域 org.demo.parent.children を指定するか、子がキャッシュされる org.demo.children のキャッシュ領域を使用する必要があります。
第 2 レベルのキャッシュ プロバイダーとして EHCache を使用しています。この質問に対する答えを探してみましたが、この方向の答えは見つかりませんでした。org.demo.children を使用する方が理にかなっていますが、上記の場合のように、どのシナリオでアソシエーション/セット/コレクションに個別のキャッシュ領域を使用する必要があるかわかりません。また、私の質問が明確でない場合はお知らせください。
皆さんありがとう。