iBatis支持三级延迟加载问题?

今天用ibatis开发查询功能的时候,突然需要支持一个具有三级的对象,即对象的属性是一个对象,属性的属性又是一个对象,也就是1:N:N的关系,想在查询一条记录的同时把属性的值也同时查出来,试了一下,只能查出第二级对象的值,第三级的却查不出来,不知道ibatis是否支持这种复杂对象的延迟加载?

以下是我的相关配置代码。

<sqlMap namespace="User">
    <!-- Use type aliases to avoid typing the full classname every time. -->
    <typeAlias alias="user" type="com.asiainfo.core.domain.User"/>
    <typeAlias alias="role" type="com.asiainfo.core.domain.Role"/>

    <resultMap class="user" id="AccountResult">
        <result column="ACCT_ID" jdbcType="DECIMAL" property="acctId"/>
        <result column="ACCT_CODE" jdbcType="VARCHAR" property="acctCode"/>
        <result column="ACCT_NAME" jdbcType="VARCHAR" property="acctName"/>
        <result column="PASSWORD" jdbcType="VARCHAR" property="password"/>
        <result column="ROLE_ID" jdbcType="DECIMAL" property="roleId"/>
        <result column="STATUS" jdbcType="DECIMAL" property="status"/>
        <result column="EMAIL" jdbcType="VARCHAR" property="email"/>
        <result column="MOBILE" jdbcType="VARCHAR" property="mobile"/>
        <result column="PHONE" jdbcType="VARCHAR" property="phone"/>
        <result column="ADDRESS" jdbcType="VARCHAR" property="address"/>
        <result column="TRY_TIMES" jdbcType="DECIMAL" property="tryTimes"/>
        <result column="IS_LOGIN" jdbcType="DECIMAL" property="isLogin"/>
        <result column="CREATE_TIME" jdbcType="TIMESTAMP" property="createTime"/>
        <result column="UPDATE_TIME" jdbcType="TIMESTAMP" property="updateTime"/>
        <result column="DESCRIPTION" jdbcType="VARCHAR" property="description"/>
        <result column="RECENT_PASSWORD" jdbcType="VARCHAR" property="recentPassword"/>
        <result property="roles" column="ACCT_ID" select="User.findRoleByUid"/>
    </resultMap>

    <select id="findRoleByUid" parameterClass="java.lang.Long" resultClass="role">
        select b.role_id   as roleId,
               b.role_code as roleCode,
               b.role_name as roleName
          from user_role a, role b
         where a.role_id = b.role_id
           and a.ACCT_ID = #acctId#
    </select>
</sqlMap>

本来是用户具有多个角色,而角色具有多个功能的。现在我只有改成在用户信息中同时查出用户具有的功能权限了,用了一个关联查询来实现。 smile_embaressed
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值