有User和Role2张表
他们之间的关系是多对多,采用annotation进行配置
User类关键代码:
@ManyToMany(cascade=CascadeType.ALL,fetch=FetchType.LAZY)
@JoinTable(name="user_role",joinColumns={@JoinColumn(name="user_id")},inverseJoinColumns={@JoinColumn(name="role_id"})
public Set<Role> getRoles(){..}Role类关键代码
@ManyToMany(mappedBy="roles",cascade=CascadeType.ALL,fetch=FetchType.LAZY)
public Set<User> getUsers(){...}
启动后产生了user,role,user_role三张表添加了几条对应数据后执行下列代码时出现问题
User user = userService.load(1);//生成ID号为1的User对象
Set<Role> roles = user.getRoles();//这句执行时出现问题
Hibernate打印的SQL语句如下
delete from user_role where user_id=?
insert into user_role(user_id,role_id)values(?,?)并且会造成原来级联关系丢失,没有了之前的多对多关系
比如有User u1,u2他们分别拥有Role r1,r2的角色属性
当执行完某个User的getRoles()方法后,就变成u1对r1,u2对r2的单对单关系了网上也有人碰到类似的问题,但是都没解决方案,求高手
他们之间的关系是多对多,采用annotation进行配置
User类关键代码:
@ManyToMany(cascade=CascadeType.ALL,fetch=FetchType.LAZY)
@JoinTable(name="user_role",joinColumns={@JoinColumn(name="user_id")},inverseJoinColumns={@JoinColumn(name="role_id"})
public Set<Role> getRoles(){..}Role类关键代码
@ManyToMany(mappedBy="roles",cascade=CascadeType.ALL,fetch=FetchType.LAZY)
public Set<User> getUsers(){...}
启动后产生了user,role,user_role三张表添加了几条对应数据后执行下列代码时出现问题
User user = userService.load(1);//生成ID号为1的User对象
Set<Role> roles = user.getRoles();//这句执行时出现问题
Hibernate打印的SQL语句如下
delete from user_role where user_id=?
insert into user_role(user_id,role_id)values(?,?)并且会造成原来级联关系丢失,没有了之前的多对多关系
比如有User u1,u2他们分别拥有Role r1,r2的角色属性
当执行完某个User的getRoles()方法后,就变成u1对r1,u2对r2的单对单关系了网上也有人碰到类似的问题,但是都没解决方案,求高手
解决方案 »
免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货