Я новичок в спящем режиме. Было бы здорово, если бы кто-то мог прокомментировать следующий мой запрос:
Скажем, у меня есть родительский класс, и у каждого родителя есть несколько детей. Таким образом, файл отображения родительского класса будет выглядеть примерно так:
parent.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, где дочерние элементы будут кэшироваться. *
Я использую EHCache в качестве провайдера кэша 2-го уровня. Я пытался найти ответ на этот вопрос, но не смог найти никакого ответа в этом направлении. Имеет больше смысла использовать org.demo.children, но я не знаю, в каких сценариях следует использовать отдельную область кэша для ассоциаций / наборов / коллекций, как в приведенном выше случае. Пожалуйста, предоставьте ваш вклад, также дайте мне знать, если я не ясно в моем вопросе.
Спасибо всем.