我正在嘗試爲Spring引導應用程序編寫集成測試。我有Product和GalleryImage域模型。他們處於一對多的關係。在spring引導集成測試中獲取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是lazily加載的,所以galleryImages.size()給了我這個例外。
我試圖在測試中添加@Transactional註釋,但它仍然不起作用。
你可能需要添加@Transactional上測試的頂部來修復它。但是我可能會將您的代碼移動到服務並向服務方法添加註釋。 –
我試圖在測試中添加@Transactional,但沒有奏效。我是否需要添加一些配置來啓用@Transactional? – Slim
你有測試過的'SpringJUnit4ClassRunner'嗎? –