我尝试使用 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
并且工作正常。