Я столкнулся с проблемами при извлечении данных для объектов, имеющих двунаправленную связь "многие ко многим". Если я использую Список
для хранения сущностей, я не могу получить одновременно несколько пакетов из-за ошибки. Если я изменю свой код на использование Set
, я получаю ошибку переполнения стека.
Подробности:
У пользователя много банковских счетов; У банковского счета может быть много пользователей
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 )
проблемы
getAllUsers
) с помощью Тестовый пример JUnit, я не могу получить несколько пакетов одновременно ошибка. Set
и HashSet
вместо List и ArrayList
соответственно, я получаю Ошибка stackoverflow. Пожалуйста, помогите мне и дайте мне знать, если код неправильный или это известная проблема гибернации с конкретной версией библиотек, которые я использую.