簡體   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