![](/img/trans.png)
[英]org.hibernate.MappingException: Unknown entity: java.lang.Integer
[英]Reference to unknown entity: java.lang.Integer
我有簡單的@Entity
課程
@Entity
@Table(name = "user")
@Getter
class User {
@Id
@GeneratedValue
private final Integer userID;
private final String username;
}
而另一個,應該掌握它的外鍵
@Getter
@Builder
@Entity
class Task {
@Id
@GeneratedValue
private final Integer taskID;
private final String title;
private final String details;
@ManyToOne(cascade = CascadeType.PERSIST)
@JoinTable(name = "user", joinColumns = {@JoinColumn(name = "userID")})
private final Integer userID;
}
關鍵是 - User
和Task
類在分離的包中,並且都是包作用域。 意味着我不能簡單地寫
@ManyToOne(cascade = CascadeType.PERSIST)
@JoinTable(name = "user", joinColumns = {@JoinColumn(name = "userID")})
private final User user;
這就是為什么我得到的
@OneToOne or @ManyToOne on com.johndoe.teamplanner.task.domain.Task.userID references an unknown entity: java.lang.Integer
是否有解決方法,以實現我的需求? 創建分離包中的兩個實體與包范圍之間的關系?
您可以嘗試以下替代方案:
User
的訪問者更改為public
。 但是,如果您問這可能是因為您無法更改它,因為您沒有源代碼。 User
.class文件以獲取源。 如果用戶不是那么復雜,你可能會試試這個。 然后,將訪問者更改為public
。 User
類版本,並將其用於持久性,另一個用於它提供的功能。 userID
在Task
類只是作為一個整數,並通過代碼,你從來沒有分配一個值不是一個有效的用戶ID保證: @Column private Integer userID;
。 如果使用JPA生成表,則需要手動添加數據庫中的外鍵以確保數據的完整性。 我希望其中一些解決方案可以提供幫助。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.