我有两个实体,一个是Customer和一个CustomerTransaction。我希望能够在CustomerTransaction中将两个客户ID存储为外键(一个用于客户启动事务,一个用于客户接收)。我还希望每个Customer对象都包含它们链接到的所有CustomerTransactions的列表。
Customer.java
@Entity
public class Customer {
@Id
@GeneratedValue(strategy = GenerationType.AUTO)
private Long id;
private String firstName;
private String lastName;
//@ManyToOne ?
private List<CustomerTransaction> customerTransaction;
//getters and setters
}
CustomerTransaction.java
@Entity
public class CustomerTransaction {
@Id
@GeneratedValue(strategy = GenerationType.AUTO)
private Long id;
//@OneToMany ?
private Customer initiater;
//@OneToMany ?
private Customer receiver;
private String transactionDetails;
//getters and setters
}
如何设置jpa注释,以便每个事务都包含启动和接收客户的外键ID?
答案 0 :(得分:1)
initiater
和receiver
需要使用ManyToOne
进行注释(许多交易由一个初始化程序启动)。
OneToMany
中需要两个Customer
:一个用于已启动的转移(OneToMany(mappedBy = "initiater")
),另一个用于收到的交易:OneToMany(mappedBy = "receiver")
。
你不能只有一个清单(无论如何它可能都不可取)。