hibernate一对多单项关联,当保存数据的时候,两张表都有数据,但是中间表没有数据。
一方:用户表
属性:
private int id;
private Set<Security> securities = new HashSet<Security>();
一方的关联注解如下:
@OneToMany(cascade = CascadeType.ALL)
@JoinTable(
name="user_secuit",//第三张表名
joinColumns=@JoinColumn(name="user_id"),//当前类在两张表关系表中的字段名
inverseJoinColumns=@JoinColumn(name="secuit_id")//另一个类在第三张表中的字段
)
public Set<Security> getSecurities() {
return securities;
}
public void setSecurities(Set<Security> securities) {
this.securities = securities;
}
多方:密保表
属性
private int id;
private String question;
private String answer;
保存数据部分代码:
@Service
@Transactional
public class UserServiceImpl implements UserServiceI {
.....
Set<Security> setSecurity = new HashSet<Security>();
setSecurity.add(security);
setSecurity.add(security1);
user.setSecurities(setSecurity);
userDaoI.save(user);
...
}
结果:用户表和密保表都有数据,但是中间表没有数据。
请参考这篇文章
乍一眼看上去你的语法也并没有问题,也不知道数据库以及配置文件是什么,可以先检查以下JOIN TABLE的表名以及列名是否填写错误