簡體   English   中英

Spring JPA在一個實體中具有多個多對一關系

[英]Spring JPA Multiple Many-To-One Relationships in One Entity

我正在嘗試創建一個實體,該用戶具有兩個地址,一個家庭住址和一個工作地址。

我不想將地址信息直接存儲在User類中,而是要對其進行規范化並將所有地址存儲在一個表中,然后將它們鏈接到用戶。 像這樣:

@Entity
public class User {

    @Id
    private Integer id;
    private Address homeAddress;
    private Address workAddress;

    // getters and setters
}

@Entity
public class Address {

    @Id
    @GeneratedValue (strategy = GenerationType.AUTO)
    private Integer id;
    private String streetNumberAndName;
    private String apartmentOrSuiteNumber;
    private String city;
    private String state;
    private String zipcode;

    // getters and setters
}

如何使用Spring JPA做到這一點? 我了解這是一個ManyToOne關系,但是我不確定如何將兩個ManyToOne關系映射到一個實體。 這有可能嗎?

任何幫助,不勝感激。

謝謝!

那真的很簡單。 只需將您的User類映射為:

@Entity
public class User {

    @Id
    private Integer id;

    @ManyToOne
    @JoinColumn(name = "fk_home_address")
    private Address homeAddress;

    @ManyToOne
    @JoinColumn(name = "fk_work_address")
    private Address workAddress;

    // getters and setters
}

表結構將如下所示:

user(id, fk_home_address, fk_work_address)

請注意,這是單向關系。

如果您想了解更多信息,最好的例子是在這里 如果您正在尋找雙向關系,請在此處學習。

private Integer id;
private Address homeAddress;
private Address workAddress;

在第一種情況下,您的結構表將是

user(id,home_address_id,work_address_id)

您可能會考慮第二種結構

private Integer id;
private List<Address> userddress;//using one to many

您的表結構將是

address(id,user_id)

這取決於您要如何組織結構。

暫無
暫無

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

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