簡體   English   中英

未知,屬於...引用的屬性,未知錯誤

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM