Hibernate注解问题:一对多,多对一

问题核心代码:

User类:

@ManyToOne(cascade=CascadeType.all)           
        @JoinColumn(name="rid")
public Role getRole() {
return role;
}


public void setRole(Role role) {
this.role = role;
}

Role类:

@OneToMany(cascade=CascadeType.ALL,mappedBy="role") 
public Set<Users> getuSet() {
return uSet;
}
public void setuSet(Set<Users> uSet) {
this.uSet = uSet;
}


在执行save(user)的操作时,hibernate后台显示生成两条语句,一条是insert User的,另一条时update Role的,然后页面报错不存在此列;

问题原因:在user表中定义的级联定义为all造成的。

解决方法:改为如下@ManyToOne(cascade=CascadeType.REFRESH,optional=true) 即可。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值