[英]Unknown mappedBy in … referenced property unknown error
我試圖使用Hibernate創建一對一的映射。 當我實現DAO方法時,出現以下錯誤:
org.hibernate.AnnotationException: Unknown mappedBy in: com.User.userData, referenced property unknown: com.UserData.user
java.lang.NullPointerException
為什么我收到此錯誤?
我的代碼如下:
對於用戶實體代碼:
@Entity
@Table(name = "user")
public class User implements Serializable {
@Id
@GeneratedValue
@Column(name = "userid")
int userID;
@OneToOne(fetch = FetchType.LAZY, mappedBy = "user", cascade = CascadeType.ALL)
UserData userData;
...
}
對於UserData實體代碼:
@Entity
@Table(name = "UserData")
public class UserData {
@Id
@GeneratedValue(generator = "generator")
@GenericGenerator(name = "generator", strategy = "foreign", parameters = @Parameter(name = "property", value = "user"))
int userID;
@OneToOne(fetch = FetchType.LAZY)
@PrimaryKeyJoinColumn
User user;
將mappedBy=user
更改為mappedBy=userID
。 那應該解決您的問題。
盡管您嘗試雙向進行一對一的操作很奇怪,但這似乎只要求單向進行。 雙向關系意味着您可以從UserDetails對象內部訪問User對象,反之亦然,但是我認為您只需要從User對象內部訪問UserDetails對象,而不必相反。
另外,您無需指定FetchType.LAZY,這仍然是默認選項。
如果要將其更改為單向一對一,只需將User類更改為:
@OneToOne
@PrimaryKeyJoinColumn
private UserData userData
並在UserData類中忽略對User的所有引用。
如果這不能解決您的問題,請告訴我
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.