У меня есть проект, который использует хранилища Spring Data для автоматического создания некоторых своих методов. Одним из таких методов является тот, который принимает пару параметров и возвращает список книг. В хранилище, этот метод выглядит следующим образом:Spring Data JPA Lazy загружает коллекции, аннотированные как Eager
List<Book> findBySellerFlagTrueAndPublishedState(PublishedState state);
Однако, когда я использую этот метод, похоже, спящий режим является отложенной загрузкой свойства книг, которые аннотированные в FetchType.EAGER. Кроме того, у меня такая же проблема, когда я сам создаю запрос, используя Criteriabuilder от JPA. Когда я использую метод findOne(Long id)
по умолчанию, эти свойства загружаются.
Я использую JPA 2.0, и использую Hibernate в качестве реализации.
Вот мои аннотаций на одном из отношений я имею эту проблему с:
@ManyToMany(fetch = FetchType.EAGER)
@JoinTable(name="BOOK_THEME",
[email protected](name="BOOK_ID", referencedColumnName="BOOK_ID"),
[email protected](name="THEME_ID", referencedColumnName="THEME_ID"))
@OrderColumn(name="THEME_SEQUENCE")
private List<Theme> themes;
методы получения и установки являются только стандартные, и это однонаправленная связь (нет книг в Theme
).
Я думаю, что это должна быть проблема с тем, как я создал свои аннотации. Кто-нибудь знает, что у меня не так?