JPA Merge"重复密钥"

时间:2017-01-26 09:12:42

标签: java spring hibernate jpa merge

我尝试使用 JPA API " merge"功能。我正在使用Hibernate和Spring。

当我致电EntityManager.merge时,我收到错误消息DUPLICATE KEY。 我使用注释@Id@GeneratedValue(strategy=GenerationType.IDENTITY)创建了密钥。

为什么合并尝试创建实体而不是合并现有实体?

我所有的实体都延伸到了母亲:

@MappedSuperclass
public abstract class EntityBase {
    @Id
    @GeneratedValue(strategy=GenerationType.IDENTITY)
    private Integer id;

    public EntityBase(){ }

    public Integer getId() {
        return id;
    }

    public void setId(Integer id) {
        this.id = id;
    }

    public EntityBase(Integer id) {
        super();
        this.id = id;
    }
}

修改

问添加方法:

        for (Student student : students){
            studentDAO.update(student);
        }
        //update method come from here
        public Student update(Student student) {
           return em.merge(student);
        }   

每次运行程序时,我都希望从列表中更新所有字段。该列表提供给LDAP并且工作正常。

0 个答案:

没有答案