我有三個實體:JPA - 加入三張表。一個PK。另外兩個分別具有PK的一部分
客戶
它... customer_id
和company_id
數據
ID的複合PK: data_id
FK:area_id(從下面的區域)
FK:customer_id(從上面的客戶)
區
ID:AREA_ID
FK:COMPANY_ID(從以上客戶)
如何創建JPA中@Join註解?我假設我必須使用@JoinTable,但我不知道該怎麼做。
客戶
@Entity
@Table(name="customer")
@NamedQuery(name="Customer.findAll", query="SELECT c FROM Customer c")
public class Customer implements Serializable {
private static final long serialVersionUID = 1L;
@EmbeddedId
private CustomerPK id;
//bi-directional many-to-one association to CustomColumnDataCustomer
@OneToMany(mappedBy="customer")
private List<CustomColumnDataCustomer> customColumnDataCustomers;
CustomerPK
@Embeddable
public class CustomerPK implements Serializable {
//default serial version id, required for serializable classes.
private static final long serialVersionUID = 1L;
@Column(name="customer_id")
private long customerId;
@Column(name="company_id")
private String companyId;
CustomColumnDataCustomer
@Entity
@Table(name="custom_column_data_customer")
@NamedQuery(name="CustomColumnDataCustomer.findAll", query="SELECT c FROM CustomColumnDataCustomer c")
public class CustomColumnDataCustomer implements Serializable {
private static final long serialVersionUID = 1L;
@Id
@Column(name="custom_column_data_cust_uid")
private int customColumnDataCustUid;
//bi-directional many-to-one association to Customer
@ManyToOne
private Customer customer;
//bi-directional many-to-one association to AreaXCustomColumn
@ManyToOne
@JoinColumn(name="area_x_custom_column_uid")
private AreaXCustomColumn areaXCustomColumn;
AreaXCustomColumn
@Entity
@Table(name="area_x_custom_column")
@NamedQuery(name="AreaXCustomColumn.findAll", query="SELECT a FROM AreaXCustomColumn a")
public class AreaXCustomColumn implements Serializable {
private static final long serialVersionUID = 1L;
@Id
@Column(name="area_x_custom_column_uid")
private int areaXCustomColumnUid;
@Column(name="company_id")
private String companyId;
//bi-directional many-to-one association to CustomColumnDataCustomer
@OneToMany(mappedBy="areaXCustomColumn")
private List<CustomColumnDataCustomer> customColumnDataCustomers;
//bi-directional many-to-one association to CustomColumnDefinition
@ManyToOne
@JoinColumn(name="custom_column_definition_uid")
private CustomColumnDefinition customColumnDefinition;
編輯:編輯說清楚。 你想達到什麼目的?你想要一個查詢加入他們,還是你想創建一個@JoinTable,或者你只是想找到一種方法使這種關係在JPA中工作? 問題對我來說還不清楚 –
你寫過實體嗎? –
尋找與@Join註釋在JPA中工作的關係。是的,我製作了這些實體。 – ThirstyForJava