У меня есть эта постоянная сущность с полем lob, которую я с нетерпением выбираю, поэтому я настроил hibernate-gain-maven-plugin и сделал его ленивым:
@Lob
@Column(name = "MY_FIELD")
@Basic(fetch = FetchType.LAZY)
private byte[] lazyField;
Теперь яполучение LazyInitializationException при довольно простом тесте:
myJpaRepo.findAll().get(0).getLazyField()
Невозможно выполнить запрошенную отложенную инициализацию [MyEntity.lazyField] - ни один сеанс и настройки не запрещают загрузку вне сеанса
Я использую Spring Boot и ничего не сделал для настройки режима гибернации. В этом тесте используется база данных h2.
MyRepo помечается @ Transactional.
Если я также аннотирую метод выполнения, исключение не выдается:
@Transactional
public void test(){
myJpaRepo.findAll().get(0).getLazyField()
}
WillМне нужно аннотировать транзакцию каждый раз, когда кто-то пытается получить ленивое поле, или я могу что-то еще сделать, чтобы избежать этого?