用户.javapackage com.spring.demo.model;import java.util.Date;import javax.persistence.CascadeType;import javax.persistence.Column;import javax.persistence.Entity;import javax.persistence.FetchType;import javax.persistence.GeneratedValue;import javax.persistence.GenerationType;import javax.persistence.Id;import javax.persistence.JoinColumn;import javax.persistence.Lob;import javax.persistence.OneToOne;import javax.persistence.Table;import javax.persistence.Transient;@Entity@Table(name="user")public class User { @Id @GeneratedValue(strategy=GenerationType.IDENTITY) @Column(name="user_id") private int id; private String fName; private String lName; @Column(unique=true,nullable=true) private String email; @Column(unique=true,nullable=true) private long mobile; private Date dob; @Lob private byte[] image; @Transient private String base64Image; @OneToOne(cascade=CascadeType.ALL,fetch =FetchType.EAGER) @JoinColumn(name="userCredential_id") private UserCredential userCredential; @OneToOne(cascade=CascadeType.ALL,fetch =FetchType.EAGER) @JoinColumn(name="add_id") private Address address; public Address getAddress() { return address; } public void setAddress(Address address) { this.address = address; } public int getId() { return id; } public void setId(int id) { this.id = id; } public String getfName() { return fName; } public void setfName(String fName) { this.fName = fName; } public String getlName() { return lName; } public void setlName(String lName) { this.lName = lName; } public String getEmail() { return email; } public void setEmail(String email) { this.email = email; } public long getMobile() { return mobile; } public void setMobile(long mobile) { this.mobile = mobile; } public Date getDob() { return dob; }
2 回答
慕雪6442864
TA贡献1812条经验 获得超5个赞
您似乎正在尝试对两个双向关系进行建模:
User
<->UserCredentials
和:
User
<-> UserAddress
。
但是您真正在创建以下四种关系:
User
-> UserCredentials
User
<- UserCredentials
User
-> UserAddress
User
<- UserAddress
为了解决这个问题,您需要使用mappedBy
.
狐的传说
TA贡献1804条经验 获得超3个赞
问题在于反向引用。Hibernate 无法为您维护这一点。假设您保存了用户对象。它创建一个凭证行并生成 id。它创建地址和 ID。它更新用户对象上的 cred_id 和 add_id,然后为其创建一行并生成 id 并返回该值。此时您需要将您的用户对象添加到凭证和地址并再次保存。
添加回答
举报
0/150
提交
取消