hibernate一对多关系,中间表的数据不能自动插入

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);
    ... 
    }  

结果:用户表和密保表都有数据,但是中间表没有数据。

阅读 5.1k
1 个回答

请参考这篇文章

乍一眼看上去你的语法也并没有问题,也不知道数据库以及配置文件是什么,可以先检查以下JOIN TABLE的表名以及列名是否填写错误

clipboard.png

clipboard.png

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题