Я пытаюсь написать интеграционный тест для приложения Spring Boot. У меня есть модель продукта и GalleryImage. Они связаны друг с другом.Получить org.hibernate.LazyInitializationException в тесте интеграции весной загрузки
public class Product {
...
@OneToMany(mappedBy = "product")
private List<GalleryImage> galleryImages;
}
У меня есть интеграционный тест, как показано ниже:
@Test
public void testProductAndGalleryImageRelationShip() throws Exception {
Product product = productRepository.findOne(1L);
List<GalleryImage> galleryImages = product.getGalleryImages();
assertEquals(1, galleryImages.size());
}
Однако, этот тест дает мне LazyInitializationException. Я искал в Google и StackOverFlow, он говорит, что сеанс закрывается после productRepository.findOne (1L), так как galleryImages лениво загружаются, поэтому galleryImages.size() дает мне это исключение.
Я попытался добавить аннотацию @Transactional на тест, но он все еще не работает.
Вы, вероятно, нужно добавить @Transactional на верните свой тест, чтобы исправить это. Но я бы, вероятно, переместил ваш код для обслуживания и добавил аннотацию к методу службы. –
Я попытался добавить @Transactional на тест, это не сработало. Нужно ли добавить некоторую конфигурацию, чтобы включить @Transactional? – Slim
У вас есть «SpringJUnit4ClassRunner» для вашего теста? –