首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Spring + iBatis + Hessian缓存

Spring + iBatis + Hessian缓存
EN

Stack Overflow用户
提问于 2010-04-18 21:02:58
回答 1查看 586关注 0票数 0

我在Spring + iBatis上有一个Hessian服务,在Tomcat上工作。我想知道如何缓存结果...

我在sqlmap文件中进行了以下配置:

代码语言:javascript
复制
<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>

然后我做了一些测试。我有一个hessian客户端应用程序。我多次调用getAccounts,每次调用之后都是对DBMS的查询。

如何使我的服务仅在第一次(服务器重启后)调用getAccounts时查询数据库管理系统,并使后续调用使用缓存?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2010-04-19 01:28:58

解决了。解决方案是添加

代码语言:javascript
复制
<settings cacheModelsEnabled="true" />

添加到我的sqlMapConfig文件。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/2662315

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档