org.hibernate.LazyInitializationException: could not initialize proxy – no Session hatası ve çözümü

hibernate logo

Bu hata hibernate’in session yönetimlerinde problem yaşamasından kaynaklanan bir sorundur. Çeşitli çözümleri vardır. Size en kolayını göstereceğim. Gördüğünüz gibi bu sorun lazy load kullanımından kaynaklanan bir sorundur. Lazy özelliğini devre dışı bırakarak bu sorunu çözmek en basit çözümlerden bir tanesidir. Fakat lazy load gibi güzel bir özelliğin devre dışı bırakılması çeşitli performans sorunlarına yol açacaktır. Size tavsiyem Spring’in filter çeşitlerinden biri olan OpenSessionInViewFilter kullanmanızdır. Bu şekilde oturum yönetimini Spring’e bırakarak sorunumuzu çözmüş oluyoruz.

web.xml dosyanıza ekleyiniz.

 

org.springframework.beans.factory.NoSuchBeanDefinitionException: No bean named ‘cxf’ is defined

apache cxf image

Hatanın kaynağı spring konfigirasyon dosyanızdaki bir eksiklikten dolayıdır. Apache cxf’ye ait namespace tanımlayıp herhangi bir bean oluşturmazsanız bu hatayı alırsınız.

 

 

Postgresql Hibernate Code Generation Tool

postgresql image

Eclipse üzerinde hibernate code generation aracını kullanırken postgresql ile kolonları görmeyebilir ve bu sebeple java kodu üretmeyebilir.

hibernate logo

Bu postgresql dialect üzerinden veya hibernate üzerinden kaynaklanan bir sorundur tam emin değilim. Sorunun çözümü ise tablolarınızı küçük harfle oluşturmaktan geçiyor. Tablo isimlerini küçük harfle oluşturarak sorunsuz bir şekilde code generation aracını kullanabilirsiniz.

Maven ile java projesi oluşturmak

logo-maven

 

Öncelikle Maven‘in kurulumunu yaptığınızı varsayarak direk mavende java projesi oluşturmaya geçiyorum. Daha sonra Maven’in windows/linux platformları için kurulumunu anlatacağım.

Maven’i projesini oluşturmak için komut kısmına giriyoruz. (cmd / Terminal) Komut kısmından ise eclipse veya netbeans hangi ide kullanıyorsak onun proje dosyalalarının bulunduğu dizine gidiyoruz ve yazmamız gereken komut şu;

Projemizi oluştururken yukarıda gördüğünüz gibi group id olarak com.furkanzumrut.project, artifact id olarak ise MerhabaDunya yazdık. Aynı zamanda projemizi oluştururken projemizde hangi Archetype‘ı kullanacağımızı da belirtmemiz gerekiyor. Biz quickstart ile oluşturduk. Dilerseniz diğer Archetype çeşitlerine Maven’nin sitesinden buraya tıklayarak bakabilirsiniz.

Yukarıdaki komutu, komut satırında girdikten sonra aşağıdaki çıktıyı aldım.

Maven projemizi quick-start archtype göre başarılı bir şekilde oluşturdu. Projemizi eclipse ide ile kullanmak istiyorsak komut satırına eclipse entegrasyonunu sağlamak için son birşey daha yazmak gerekiyor.

Bu komutumuzuda kullandıktan sonra maven projemizi sorunsuz bir şekilde eclipse idemize ekleyebir ve kullanabiliriz.

 

java.lang.ClassNotFoundException: javax.transaction.TransactionManager hatası ve çözümü

Bu tip hatalar hibernate ve jpa üzerinde çalışırken karşımıza çıkabilmektedir. Hatamızın çıktısı şu şekildedir.

Çözümü ise gayet basit. Hatamız eksik bir kütüphaneden kaynaklanmaktadır. Projemize javaee.jar kütüphanesini dahil ederek sorunu çözebiliriz.

Bu kütüphaneyi Maven Repository’den hazır bir şekilde indirip projemize dahil etmek istiyorsak. İndirme linkimiz aşağıdadır.

http://mvnrepository.com/artifact/javax/javaee-api/6.0

Projenizde maven kullanıyor iseniz. Aşağıdaki xml kodunu pom.xml dosyanıza eklemeniz yeterlidir.