JPA с Hibernate 3 - переполнение ManyToMany-Stack и множественные ошибки пакетов

Я столкнулся с проблемами при извлечении данных для объектов, имеющих двунаправленную связь "многие ко многим". Если я использую Список для хранения сущностей, я не могу получить одновременно несколько пакетов из-за ошибки. Если я изменю свой код на использование Set , я получаю ошибку переполнения стека.

Подробности:

  • Spring 3.0.3
  • Hibernate-core: 3.5.1-Final
  • Hibernate-annotations: 3.5.1-Final
  • hibernate-common-annotations: 3.2.0-Final
  • hibernate-entitymanager: 3.5.1-Final
  • База данных Mysql
  • Junit 4

У пользователя много банковских счетов; У банковского счета может быть много пользователей

User.java

@ManyToMany(fetch = FetchType.EAGER, mappedBy="user") 
private List<BankAccount> bankAccounts = new ArrayList<BankAccount>();

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>();

Таблицы БД

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 )

проблемы

  1. , когда я пытаюсь получить все данные пользователей ( getAllUsers ) с помощью Тестовый пример JUnit, я не могу получить несколько пакетов одновременно ошибка.
  2. Если я использую Set и HashSet вместо List и ArrayList соответственно, я получаю Ошибка stackoverflow.

Пожалуйста, помогите мне и дайте мне знать, если код неправильный или это известная проблема гибернации с конкретной версией библиотек, которые я использую.

5
задан Pascal Thivent 21 October 2010 в 18:31
поделиться