我们可以在hibernate中的@onetomany表中插入多个重复的外键吗?

时间:2018-01-12 10:01:54

标签: mysql hibernate duplicates postgresql-9.1 hibernate-onetomany

根据我的要求,我想将我的记录保存在由@onetomany映射创建的默认表中,问题是我想多次插入相同的记录但是hibernate不允许我这样做并给出以下异常:< / p>

org.hibernate.NonUniqueObjectException:具有相同标识符值的其他对象已与会话关联

模型

@OneToMany(fetch = FetchType.EAGER, cascade = 
 CascadeType.ALL,orphanRemoval=true)
 private List<MasterCode> msCode;

 public List<MasterCode> getMsCode() {
        return msCode;
 }

 public void setMsCode(List<MasterCode> msCode) {
        this.msCode = msCode;
 }

DAO

public void saveOrUpdate(User user) {
     Session session=sessionFactory.getCurrentSession();
     Transaction tx=session.beginTransaction();
        try {
          session.saveOrUpdate(user);
        } catch (HibernateException e) {
          tx.rollback();
          e.printStackTrace();
        } 
     tx.commit();
}

控制器

 User user =new User();
 user.setName("xyz");
 user.setMsCode(selectedMsList);

selectedMsList包含所选MasterCode的记录,如:[id:2,代码:“xxx”],[id:3,代码:“yyy”],[id:3,代码: “YYY”],[ID:1,代码: “XXX”]

我想插入用户选择此mscodes的次数。

请给我一个解决方案,忽略这个并保存记录。非常需要。

0 个答案:

没有答案