繁体   English   中英

ibatis 2.3.x可以延迟加载java.lang.Integer吗?

[英]Does ibatis 2.3.x can lazy load java.lang.Integer?

尝试延迟加载java.land.Integer。 延迟加载属性:

<result property="foo.cnt" column="id" select="getCnt"/>

Sql语句是这样完成的:

<sql id="sql-getCnt">
    SELECT count(*) as cnt
    FROM  bar b INNER JOIN bar2 b2 on b.id = b2.id
    WHERE bar.id=#id#
    AND b2.workds IS NULL
</sql>

选择语句是这样完成的:

<select id="getCnt" parameterClass="int" resultClass="java.lang.Integer">
    <include refid="sql-getCnt"/>
</select>

设置:

<settings 
    enhancementEnabled="true"
    errorTracingEnabled="true"
    lazyLoadingEnabled="true"
    useStatementNamespaces="true"
/>

我希望延迟加载有效。 但这就是我在日志中看到的内容: Select count语句紧接在第一个select语句之后-这意味着延迟加载不起作用。 为了确保没有任何内容读取对象字段,我在查询对象后立即强制线程休眠一分钟。

如何完成Integer的延迟加载? 可以做到吗?

原因是java.lang.Integer类是最终类,因此cglib无法为其创建代理对象。 答案很简单。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM