![](/img/trans.png)
[英]How to map a composite key and one of them is a foreign key using Hibernate
[英]How can I map these entities using hibernate? Need to map one to many relationship. Foreign key is not updating
在這種情況下,我有 2 個實體(Users 表和 UploadRecord 表)。 我需要映射一對多的關系,因為一個用戶可以有許多上傳記錄。 我需要使用 UserId 作為 Users 表中的主鍵,並使用外鍵作為 UploadRecord 表。
我嘗試使用此代碼,但 UploadRecord 表 fk_UserId 未更新。 如何解決這個問題?
@OneToMany(cascade = CascadeType.ALL)
@JoinColumn(name = "fk_UserId", referencedColumnName = "UserId")
private List<UploadRecord> uploadRecord;
我編寫了Users實體類和UploadRecord實體類如下。
@Entity
@Table(name = "users")
public class User {
@Id
@GeneratedValue(strategy = GenerationType.IDENTITY)
@Column(name= "UserId")
private Long UserId;
@Column(nullable = false, unique = true, length = 45)
private String email;
@Column(name = "fullName", nullable = false, length = 20)
private String fullName;
@OneToMany(cascade = CascadeType.ALL)
@JoinColumn(name = "fk_UserId", referencedColumnName = "UserId")
private List<UploadRecord> uploadRecord;
//Getters and setters
@Entity
@Table(name = "uploadrecord")
public class UploadRecord {
@Id
@GeneratedValue(strategy = GenerationType.IDENTITY)
private Long uploadRecordId;
@Column(nullable = false, unique = false, length = 1000)
private String fileName;
//Getters and setters
您似乎還沒有完成對這兩個實體之間的關系的建模。
像這樣編輯您的模型:
用戶:
@OneToMany(mappedBy="user", cascade = CascadeType.ALL)
private List<UploadRecord> uploadRecords;
上傳記錄:
@ManyToOne
@JoinColumn(name = "userId")
private User user;
建模關系的更多細節: Baeldung
此外,請注意命名約定:
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.