我正在尝试使用Hibernate对数据库进行更新。当我调用merge时,它会在数据库中生成一个新行。我没有收到任何错误。鳕鱼正在工作,但我希望更新不插入。
型号:
@Entity
@Table(name = "Books")
public class Manual implements Serializable {
@Id
@GeneratedValue
private int idManual;
private String denumire;
private String disciplina;
private Date dataPostare;
@Enumerated(EnumType.STRING)
private TipManual tipManual;
private String emailContact;
private String telefonContact;
private double pret;
@ManyToOne(fetch = FetchType.LAZY)
@JoinColumn(name = "username")
private User userName;
public Manual() {
}
public Manual(int idManual, String denumire, String disciplina, Date dataPostare, TipManual tipManual,
String emailContact, String telefonContact, double pret, User userName) {
super();
this.idManual = idManual;
this.denumire = denumire;
this.disciplina = disciplina;
this.dataPostare = dataPostare;
this.tipManual = tipManual;
this.emailContact = emailContact;
this.telefonContact = telefonContact;
this.pret = pret;
this.userName=userName;
}
public int getIdManual() {
return idManual;
}
public void setIdManual(int idManual) {
this.idManual = idManual;
}
public String getDenumire() {
return denumire;
}
public void setDenumire(String denumire) {
this.denumire = denumire;
}
这是我的模型类,我也试图删除@GeneratedValue作为我的id,但问题是一样的。
我的合并功能:
@Override
@Transactional
public Manual updateBook(Manual book) {
em.merge(book);
em.flush();
return book;
}
答案 0 :(得分:1)
当应用程序调用updateBook时,手动实体的 idManual 是否有价值?
选中此项,因为如果标识符不存在,将再次插入实体。
答案 1 :(得分:0)
如果您的实体是将要发生的分离实体,则更多info