[英]update on many-to-one hibernate relationship no works
休眠關系多對一有問題。
我的系統是商業提案控制器,其中負責用戶實體的提案。 提案創建並設置負責人時,沒有問題,工作正常。 但是當更改負責人並進行更新時,它更改了對象,我可以在數據表中看到,但是數據庫中沒有更新。 如果我在頁面上刷新,更新將消失。
@Entity
@Table(name = "proposal")
public class Proposal implements Serializable {
@Id
@GeneratedValue
private Integer id;
@ManyToOne
private User responsible;
............
DAO代碼
public void update(Proposal proposal) {
this.session.update(proposal);
}
在User類中,我沒有對此關系做任何注釋,它是單向關系。 班級提議還使用用戶班級作為參與者制作用戶的書包,並且這種關系也將是單向關系。
我試圖在用戶類中進行批注,但是也沒有用。
帶有注釋的用戶類別
@Entity
@Table(name="user")
public class User implements Serializable{
@OneToMany
private List<Proposal> proposal;
User類與userType具有多對一關系,並且可以正常工作。
@Entity
@Table(name="user")
public class User implements Serializable{
@ManyToOne(fetch = FetchType.LAZY)
@JoinColumn(name = "idType, nullable = true)
private TipoUsuario userType;
有人對此有任何想法嗎?
謝謝
刷新到數據庫后,您將看到更改。 手動-flush()或提交事務之后。 User類-必須是一個實體(需要@Entity和@Id批注)或可嵌入類,並且在這種情況下應以相應的方式進行配置。
如果您說-@Entity沒有@Id的User,我不確定它是如何工作的,但是請重試:
如果調用刷新,則在提交之前,所有更改都將丟失。
在我看來,您與用戶的ManyToOne關系中缺少@JoinColumn
批注。 嘗試更新為此:
@ManyToOne
@JoinColumn(name="userId")
private User responsible;
但是顯然,將“ userId”替換為表中指定的ID名稱。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.