Spring + iBatis + гессианское кеширование - PullRequest
0 голосов
/ 18 апреля 2010

У меня есть сервис Hessian на Spring + iBatis, работающий на Tomcat. Мне интересно, как кешировать результаты ...

Я сделал следующую конфигурацию в моем файле sqlmap:

<sqlMap namespace="Account">

<cacheModel id="accountCache" type="MEMORY" readOnly="true" serialize="false">
    <flushInterval hours="24"/>
    <flushOnExecute statement="Account.addAccount"/>
    <flushOnExecute statement="Account.deleteAccount"/>
    <property name="reference-type" value="STRONG" />
</cacheModel>

<typeAlias alias="Account" type="domain.Account" />

    <select id="getAccounts" resultClass="Account" cacheModel="accountCache">
        fix all;
        select id, name, pin from accounts;
    </select>

    <select id="getAccount" parameterClass="Long" resultClass="Account" cacheModel="accountCache">
        fix all;
        select id, name, pin from accounts where id=#id#;
    </select>

    <insert id="addAccount" parameterClass="Account">
    fix all;
        insert into accounts (id, name, pin) values (#id#, #name#, #pin#);
    </insert>

    <delete id="deleteAccount" parameterClass="Long">
        fix all;
        delete from accounts where id = #id#;
    </delete>
</sqlMap>

Тогда я сделал несколько тестов ... У меня есть гессианское клиентское приложение. Я звоню getAccounts несколько раз, и после каждого вызова это запрос к СУБД.

Как заставить мой сервис запрашивать СУБД только в первый раз (после перезапуска сервера), вызываться getAccounts и для следующих вызовов использовать кеш?

1 Ответ

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

решаемая. Решение было добавить

<settings cacheModelsEnabled="true" />

в мой файл sqlMapConfig.

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