小编Suy*_*ash的帖子

带有Hibernate 3的JPA-ManyToMany-Stack溢出和多个包错误

在检索具有双向多对多关系的实体的数据时,我遇到了问题。如果List用于存储实体,则无法同时获取多个包错误。如果我将代码更改为use Set,则会出现stackoverflow错误。

细节 :

  • 春季3.0.3
  • 休眠核心:3.5.1-Final
  • 休眠注释:3.5.1-最终
  • 休眠公共注释:3.2.0-最终
  • 休眠实体管理器:3.5.1-Final
  • MySQL数据库
  • Junit 4

用户有许多银行帐户;银行帐户可以有许多用户

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)

问题

  1. 当我尝试getAllUsers使用JUnit测试用例获取所有用户数据()时,无法同时获取多个数据包错误。
  2. 如果我分别使用SetHashSet而不是List和ArrayList,则会出现stackoverflow错误。 …

java orm hibernate jpa-2.0

5
推荐指数
2
解决办法
7775
查看次数

标签 统计

hibernate ×1

java ×1

jpa-2.0 ×1

orm ×1