簡體   English   中英

如何使用休眠映射這些實體? 需要映射一對多關系。 外鍵未更新

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

此外,請注意命名約定:

  • 用戶 ID -> 用戶 ID
  • uploadRecord -> uploadRecords (Lists, Sets, ...) -> 復數

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

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