用hibernate的多对多关系发现得到的list比实际多了一个值,是空值

丘小 2005-04-01 02:26:30
用户和角色的多对多对应:

用户表users,角色表roles,对应表userRoles:

<list
name="roles"
table="userRoles"
lazy="false"
inverse="false"
cascade="all"
>

<key
column="Fk_UserId"
>
</key>

<index
column="MapId"
type="int"
/>

<many-to-many
class="com.Roles"
column="Fk_RoleId"
outer-join="auto"
/>

</list>
取得某个用户的角色时:

List roles_set = userinfo.getRoles();
System.out.println("用户共有=" + roles_set.size() + "个角色");
Iterator roles_iterator = roles_set.iterator();
while (roles_iterator.hasNext()) {
Roles roles = (Roles) roles_iterator.next();
System.out.println("role " + roles.toString());
System.out.println("role name: " + roles.getRoleName());
}

实际上该用户有三个角色,但得到的roles_set.size() 为4,第一个为空值,第二\三\四个值为正确的值

然而,在控制台中输出的sql语句是正确的, 执行出来的结果数并没有加1

为什么呀?
...全文
93 回复 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
回复
切换为时间正序
请发表友善的回复…
发表回复

67,549

社区成员

发帖
与我相关
我的任务
社区描述
J2EE只是Java企业应用。我们需要一个跨J2SE/WEB/EJB的微容器,保护我们的业务核心组件(中间件),以延续它的生命力,而不是依赖J2SE/J2EE版本。
社区管理员
  • Java EE
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧