首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 软件管理 > 软件架构设计 >

Ibatis的延迟加载的配置和引起的一些有关问题

2012-07-15 
Ibatis的延迟加载的配置和引起的一些问题1.在sqlMapConfig.xml中,加入:sqlMapConfig…settings lazyLoad

Ibatis的延迟加载的配置和引起的一些问题
1.在sqlMapConfig.xml中,加入:

<sqlMapConfig>

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

    <sqlMap resource=""/>

</sqlMapConfig>

2.在CardInfoMap.xml中,加入
<resultMap id="cardInfo_result" column="CARD_TYPE_ID" select="CardType_findCardType"/>
</resultMap>
当然,CardTypeMap.xml和CardInfoMap.xml都要有。

3.这样,在代码中,就可以方便地访问卡信息的卡类型了。如:

CardInfo cardInfo = cardManager.findCardInfo(cardId);

String cardTypeName = cardInfo.getCardType().getName();

不过,利用延迟加载带来一些和平时编码不一样的地方:

1. cardInfo.getCardType()永远不会等于null,它里面实际上是一个代理类,所以如果要判断cardInfo.getCardType()是否为null,没法判断,因此,需要转变一下思路,可以判断cardInfo.getCardType().getId()(这个ID是PK)是否为null来判断。

2. 利用Ibatis延迟加载,cardInfo.getCardType()里面的代理类会,占用内存非常大。(这个可以用SizeOf测试出来)

热点排行