gpt4 book ai didi

java - 来自同一实体的多个外键? (JPA hibernate )

转载 作者:行者123 更新时间:2023-11-30 06:50:44 26 4
gpt4 key购买 nike

我有两个实体,一个 Customer 和一个 CustomerTransaction。我希望能够在 CustomerTransaction 中存储两个客户 ID 作为外键(一个用于发起交易的客户,一个用于接收交易的客户)。我还希望每个 Customer 对象包含它们链接到的所有 CustomerTransactions 的列表。

客户.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?

最佳答案

initiatorreceiver 需要用 ManyToOne 注解(多个事务由一个发起者发起)。

并且您在 Customer 中需要两个 OneToMany:一个用于启动的交易 (OneToMany(mappedBy = "initiater")),另一个用于启动交易对于接收到的交易:(OneToMany(mappedBy = "receiver").

你不能只有一个列表(而且这可能也是不可取的)。

关于java - 来自同一实体的多个外键? (JPA hibernate ),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42843708/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com