在检索具有双向多对多关系的实体的数据时,我遇到了问题。如果List用于存储实体,则无法同时获取多个包错误。如果我将代码更改为use Set,则会出现stackoverflow错误。
细节 :
用户有许多银行帐户;银行帐户可以有许多用户
User.java
@ManyToMany(fetch = FetchType.EAGER, mappedBy="user")
private List<BankAccount> bankAccounts = new ArrayList<BankAccount>();
Run Code Online (Sandbox Code Playgroud)
BankAccount.java
@ManyToMany(fetch = FetchType.EAGER)
@JoinTable(name = "user_bankaccount",
joinColumns = @JoinColumn(name="bank_account_id"),
inverseJoinColumns = @JoinColumn(name = "user_id")
)
private List<User> user = new ArrayList<User>();
Run Code Online (Sandbox Code Playgroud)
数据库表
Users
user_id PK
Bankaccount
bank_account_id PK
user_bankaccount
bank_account_id PK ( references bankaccount.bank_account_id )
user_id PK ( references user.user_id )
Run Code Online (Sandbox Code Playgroud)
问题
getAllUsers使用JUnit测试用例获取所有用户数据()时,无法同时获取多个数据包错误。Set和HashSet而不是List和ArrayList,则会出现stackoverflow错误。 …