2009-09-02 16 views

cevap

10

bir örnek almak sağlar. Yukarıdaki örnek göz önüne alındığında, kitap nesnesini aldığımızı söyleyin, daha sonra Kitap nesnesi hazırda bekleme oturumu nesnesine eklenir, yani ilk seviye önbelleği otomatik olarak. Ve etki alanı nesnesi oturum nesnesinden ayrıldıktan sonra ve sonra book.author'u getirmeye çalışırız, bu anda Lazy başlatma özel durumunu yükseltir.

Yani çözüm

var ya aşağıda verilen kodu kullanarak oturumu hazırda olarak istekli modu getirme veya kitap nesnesini eklemek:

if(!book.isAttached()){ 
    book.attach() 
} 

Yukarıda verilen açıklama senaryo biridir. Daha fazlası olabilirdi. Başkalarının paylaşmalarını rica ediyorum.

+1

Bu benim için gerçekten çok iyi, ama her yere ihtiyaç duyduğu için can sıkıcı! – IgniteCoders

+0

@IgniteCoders Amit, SO'da aktif görünmüyor. Bir oturumda hangi sebeplerin ve nesnelerin ayrıldığını biliyor musunuz? –

+0

@AlexanderSuraphel Gerçekten bilmiyorum. İstisna bir yerde yükseldiğinde sadece yerleştirdim – IgniteCoders

1

Bir kullanıcı var çünkü bir kullanıcının işlem yapmayan bir hizmette JSecurity/Shiro ile bir eylem yapma izninin olup olmadığını kontrol ediyordum. Sonunda, istisnadan kurtulmak için hizmeti işlem olarak ayarladım. Burada

diğer bilgiler: mod etki alanı sınıflarında tembel getirme Bildiğimiz gibi,

class Book { 
    String title 
    Author author 
} 

class Author { 
    ... 
} 

Book book = Book.get(1) 

varsayılan: http://www.nabble.com/JSecurity-LazyInitializationException-in-default-DbRealm.isPermitted%28%29-td24939803.html