Hibernateを使用してデータベースを更新しようとしています。私がマージを呼び出すと、データベースに新しい行が作成されます。私は何のエラーも受けない。タラが働いていますが、私は挿入しないでください。マージを使用しているときにHibernateが更新の代わりに挿入します
モデル:
@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;
}
これは私のモデルクラスで、私も自分のIDの@GeneratedValueを削除しようとしましたが、問題は同じです。マージのための
My機能:アプリケーションがupdateBookを呼び出したときに
あなたの実体が起こったウィルのエンティティを外れている場合@Override
@Transactional
public Manual updateBook(Manual book) {
em.merge(book);
em.flush();
return book;
}
アプリケーションがupdateBookを呼び出すと、手動エンティティのidManualに値がありますか? – adyjr
@adyjr、thxあなたが正しいです –
あなたは大歓迎です@ S.over17。私が答えるならば、私の答えを正しいとマークしますか? – adyjr