0

Spring JPA org.hibernate.LazyInitializationException: failed to lazily initialize a collection of role

Posted by Faruk BOZAN on 06 Ekim 2017 in Java, Spring Framework |

Merhaba değerli Java dostları, bu yazımda aslında çok basit bir hareketle çözülebilen; ama bu çözümün bulunması uzun vakit alabilen bir probleme değinmek istiyorum. Entity tanımları yapılırken bağlı entityler lazy load olarak tanımlanabilir. Bu durumda gerçekten o bağlı nesneler çağrıldığında yüklenir. Çağrılmadığı sürece bir proxy ile işler idare edilir. Fakat session ve transaction yönetimi şeklinize bağlı olarak org.hibernate.LazyInitializationException: failed to lazily initialize a collection of role hatasını alabilirsiniz. Bu hatanın nedeni lazy load yapılırken aktif bir session bilgisinin bulunmaması. Bunu çok basit bir hareketle çözüyoruz. Ben annotation tabanlı gittiğim için java kodu üzerinden örnek vereceğim. Xml tabanlı gidenler için de aslında sadece tanım şekli değişiyor, mantık aynı. EntityManagerFactory sınıfı üzerinden properties veriyoruz.

LocalContainerEntityManagerFactoryBean.setJpaProperties(additionalProperties);

 

additionalProperties tanımı ise aşağıdaki gibi.

 

Properties properties = new Properties();
properties.setProperty(“hibernate.enable_lazy_load_no_trans”, “true”);

 

Böylece lazy load yapılırken tekrar bir session açılmasını sağlıyoruz.

 

Bol Java’ lı günler dileğiyle… 😀

VN:D [1.9.22_1171]
Rating: 10.0/10 (3 votes cast)
VN:D [1.9.22_1171]
Rating: +3 (from 3 votes)
Spring JPA org.hibernate.LazyInitializationException: failed to lazily initialize a collection of role, 10.0 out of 10 based on 3 ratings
Paylas
  Facebook  Twitter  Digg  Delicious

Etiketler:, , , , , , , , , , , , , , , , , , , ,

Bir Cevap Yazın

E-posta hesabınız yayımlanmayacak. Gerekli alanlar * ile işaretlenmişlerdir

Copyright © 2009-2017 Faruk Bozan All rights reserved.
This site is using the Desk Mess Mirrored theme, v2.5, from BuyNowShop.com.