此回复为自动发出,仅用于显示而已,并无任何其他特殊作用
楼主【tracyjoy】截止到2008-06-23 17:51:14的历史汇总数据(不包括此帖):
发帖数:5 发帖分:115
结贴数:2 结贴分:70
未结数:3 未结分:45
结贴率:40.00 % 结分率:60.87 %
楼主该结一些帖子了
楼主【tracyjoy】截止到2008-06-23 17:51:14的历史汇总数据(不包括此帖):
发帖数:5 发帖分:115
结贴数:2 结贴分:70
未结数:3 未结分:45
结贴率:40.00 % 结分率:60.87 %
楼主该结一些帖子了
把下面的select role 改成select* 试试<!-- 获取角色真实名 -->
<select id="getRole" parameterClass="int" resultMap="role">
SELECT
ROLE
FROM TBL_CSJ_ROLE WHERE ID=#value#
</select>
SELECT COUNT(*) C FROM TBL_CSJ_ACCOUNT
<dynamic prepend="WHERE">
<isNotEmpty prepend="AND" property="id"> ID = #id# </isNotEmpty> </dynamic>
</select> 缺少parameterClass
手册上应该有例子的
如果用这种one-to-many模式,说实话,还不如去用hibernate方便
1+n的效率很差ibatis方便在于可以随便加关联的字段,而且不用完全映射
<select id="getRole" parameterClass="int" resultMap="role">
SELECT
ID, ROLE
FROM TBL_CSJ_ROLE WHERE ID=#value#
</select> 感觉像是resultMap映射异常
你的命名有问题,还是写错了
column存的是ROLE_ID 和ROLE表中的ID对应的。
<select id="getRole" parameterClass="int" resultMap="role">
SELECT
ID, ROLE
FROM TBL_CSJ_ROLE WHERE ID=#value#
</select>
你的column应该存放ROLE表对应ACCOUNT外键,也就是ACCOUNT_ID,应该这样
<result property="role" select="getRole" column="ACCOUNT_ID" />根据它来检索子集合嘛
你的类是一对多的关系,一是Account,多是Role的集合list,那在你的ROLE表里应该存放ACCOUNT的id
当你检索ACCOUNT的时候,要根据ACCOUNT_ID来检索ROLE里的相应结果集,要弄清楚过程
所以这里的column是ACCOUNT_ID