Selamlar, hibernate ile dışarıdan thread'a verdiğim entity'nin oneToMany olan bir relation'ini lazy olarak almaya çalışıyorum. Malumunuz hibernate'in session'i thread-safe olmadığı için kodda işaretlediğim noktada null pointer exception alıyorum.

Bunu önlemek icin generate metodunda dışarıdan aldığım Brand nesnesini yeni bir hibernate session'i açarak load ediyorum ve bunun yanlış bir yaklaşım olduğunu düşünüyorum.

Sorularım:

1 - thread içinde yeni bir session acmadan dışarda oluşan bir sessionla gelen entity'nin OneToMany propertysine nasıl erişirim ?

2 - Eğer 1. soruda sorduğum işlemi yapamaycaksam, yeniden db'ye gitmeden thread-safe olarak entity'nin OneToMany propertysini nasil alırım ?

3 - Bu bir concurrent uygulama oldugu icin thread-pool'un ne zaman kapanacagini bilmiyorum, dolayısı ile Hibernate SessionFactory'i shutdown edemiyorum. Kapatma işlemini nasil yapabilirim ? (Aklıma gelen ScheduledExecutorService ile 10 15 dakikada bir pool'un durumunu sorgulayip pool tamamen kapandi ise SessionFactory'ide kapatmak)

https://gist.github.com/oksuz/21db191f09993894eefc

soruldu: 15 May '15, 11:20

oksuz's gravatar image

oksuz
126348
cevap kabul oranı: 33%

değiştirildi: 15 May '15, 11:20


Merhabalar eğer Hibernate 4.1.6 kullanıyorsanız bu sorun şu şekilde çözülüyor. Lazy olarak istediğiniz işlemi yapabilirsiniz.Hibernate configurationa tek bir satır ekleyerek bu sorunu çözebilirsiniz.

<prop key="hibernate.enable_lazy_load_no_trans">true</prop>
permanent link

cevaplandı: 15 May '15, 17:34

caglarturkurka's gravatar image

caglarturkurka
6653712
cevap kabul oranı: 6%

değiştirildi: 15 May '15, 17:35

Teşekkürler bu problemimi çözdü fakat hibernate'i nasıl bir moda soktuk bu direktifle. Buna bakacağım.

(18 May '15, 02:46) oksuz oksuz's gravatar image

Rica ederim.Hibernate 4.1.6 ta bu sorunun bu şekilde çözüldüğünü yazmıştı.Yani artık ihtiyaç olmadıkça ilişkisi olan entityleri yüklemiyor oldun ve aldığın hatadan kurtulmuş oldun : )

(25 May '15, 07:26) caglarturkurka caglarturkurka's gravatar image
Cevabınız
toggle preview

Bu soruyu takip et

E-Posta üzerinden:

Üyelik girişi yaptıktan sonra abonelik işlemlerini yapabilirsiniz

RSS üzerinden:

Cevaplar

Cevaplar ve Yorumlar

Yazı Formatlama

  • *italic* ya da _italic_
  • **bold** ya da __bold__
  • link:[text](http://url.com/ "başlık")
  • resim?![alt text](/path/img.jpg "başlık")
  • liste: 1. Foo 2. Bar
  • temel HTML etiketleri de kullanılabilir

Bu sorunun etiketleri:

×109
×2

Soruldu: 15 May '15, 11:20

Görüntüleme: 386 kez

Son güncelleme: 25 May '15, 07:26

powered by BitNami OSQA