Кэш второго уровня для сущностей с предложением where - PullRequest
0 голосов
/ 27 апреля 2010

Мне интересно, где кэш второго уровня гибернации работает, как и ожидалось, если я добавлю предложение where в определение класса hbm.xml:

<hibernate-mapping>
  <class name="com.clazzes.A" table="TABLE_A"
   mutable="false" where="xyz=5" >
  <cache usage="read-only"/>
  <id name="id"  />
  ...

Будет ли Hibernate по-прежнему помещать идентификатор в качестве ключа в кэш, или я должен включить кэш запросов? Например. когда я затем выполняю запрос HQL, такой как from A where id=2, который приводит к SQL, похожему на select * from TABLE_A where id=2 and (xyz=5). Если я выполню этот запрос дважды, будет ли он рассматривать кэш второго уровня или, тем не менее, будет выполнять SQL дважды?

1 Ответ

0 голосов
/ 27 апреля 2010

да, вы должны включить кеш запросов. это настройка для каждого запроса, поэтому у вас достаточно контроля над ней.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...