Я сталкиваюсь с проблемами при извлечении данных для сущностей, имеющих двунаправленные отношения «многие ко многим». Если я использую List
для хранения сущностей, я не могу получить несколько пакетов одновременно. Если я изменю свой код, чтобы использовать Set
, я получу ошибку stackoverflow.
Подробности :
- Весна 3.0.3
- Hibernate-core: 3.5.1-Final
- Hibernate-аннотации: 3.5.1-Final
- hibernate-common-аннотации: 3.2.0-Final
- hibernate-entitymanager: 3.5.1-Final
- База данных MySQL
- 4 июня
У пользователя много банковских счетов; Банковский счет может иметь много пользователей
Пользователь.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
вместо списка иArrayList
соответственно, я получаю ошибку переполнения стека.
Пожалуйста, помогите мне и дайте мне знать, если код неверен или это известная проблема со спящим режимом с определенной версией библиотек, которые я использую.