Hibernate кеширование нативных SQL-запросов - PullRequest
1 голос
/ 21 февраля 2012

Ниже приведен фрагмент моего файла сопоставления Hibernate.Мы используем собственный SQL-запрос, который отображается на наш возвращенный объект MyCode.В Hibernate на самом деле отображаются только несколько таблиц, указанных в запросе.

<hibernate-mapping package="a.b.c.d">
    <class name="MyCode" table="OVERRIDE" schema="SCHEMA1">
        <id name="myId" type="java.lang.Long">
            <column name=ID" length="22"/>
            <generator class="assigned"/>
        </id>
        <property name="myCode" type="java.lang.String">
            <column name=CD"/>
        </property>
        <property name="myDescription" type="java.lang.String">
            <column name="DESC" length="120"/>
        </property>
    </class>

    <sql-query name="retrieveCodes">
        <return class="MyCode"/>
        <![CDATA[
        select distinct o.ID, ec.CD, o.DESC
        from SCHEMA1.AEFX aefx, SCHEMA1.EC ec, SCHEMA1.FC fc, SCHEMA1.MYCODE o
        ....
        ....

Нам интересно узнать о преимуществах добавления кэширования для этого запроса.Соответствующие данные будут обновляться редко, но будут много читаться.

Мне не удалось получить однозначный ответ в документации Hibernate о поддержке Hibernate для этих типов запросов.Я предполагаю, что кэш второго уровня, вероятно, не будет работать здесь, так как большинство из приведенных выше таблиц не известны Hibernate.Каков наилучший вариант для кэширования этого собственного запроса?

Спасибо

1 Ответ

3 голосов
/ 22 февраля 2012

Каждый собственный запрос лишает законной силы кэш, все регионы.

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