When It is Useful to Make Use of JPA @MapKey?

As you probably know, JPA provides way to map collection associations using java.util.Map. However, usage scenarios for such mappings are very limited; but when it comes, they become highly invaluable to easily extract necessary information from your domain model. They are especially useful in order to categorize entities in your associated collection based on some […]

Read More →
A Transaction Gotcha When Using Spring with Hibernate

Spring’s transaction propagation rule SUPPORTS states that if there exists a transaction when the method is called, it should work within that transaction, otherwise it should work outside any transaction. Similarly, transaction propagation rule NOT_SUPPORTED states that if there exists any active transaction when the method is called, that active transaction should be suspended before […]

Read More →
Hibernate ve import.sql

Hibernate’in dokümante edilmemiş özelliklerden birisi de import.sql kabiliyetidir. Eğer root classpath’e import.sql isimli bir dosya eklerseniz ve bu dosya içerisine de SQL ifadeleri yazarsanız Hibernate şema export adımından sonra bu SQL ifadelerini çalıştıracaktır. Bu yöntem ile test veya development sırasında örnek verinin DB’ye eklenmesi mümkündür. import.sql kullanırken dikkat edilmesi gereken bir iki husus söz konusudur. […]

Read More →
Hibernate’de Sınıf İlişkileri 6

Bir önceki yazımızda 1:M entity-bileşen türü ilişkileri incelemiştik. Bu yazımızda ise M:N ilişkileri incelemeye başlayacağız. M:N ilişkiler sadece entity’ler arasında olabilir. İlişkili entity’lerin bilgisi veritabanında bir “association tablo“da tutulur. İlişkiler tek veya çift yönlü olabilirler. Eğer çift yönlü bir M:N ilişki varsa, taraflardan birisi bu ilişkiyi yöneten olarak tanımlanmalıdır. Hedef entity’lerin tutulduğu Collection sınıfının türüne […]

Read More →
Hibernate’de Sınıf İlişkileri 5

Hibernate’de sınıf ilişkilerini incelediğimiz yazı dizimizin bir önceki bölümünde entity’ler arasındaki 1:M türünden ilişkileri ele almıştık. Bu bölümde ise target sınıfı component yani bileşen olan 1:M ilişkileri inceleyeceğiz. Bildiğimiz gibi bileşenler sadece tek bir entity instance’a ait olabilirler ve kendi başlarına var olamazlar. Başka bir ifade ile ait oldukları parent entity instance’ın yaratılmasından sonraki bir […]

Read More →
Possible bug in Hibernate XML based mapping when using properties element

Assume you have a Person with firstName and lastName properties, and a subclass of it called as Vet. You will have hbm.xml mapping files with the following content. Person.hbml.xml <hibernate-mapping> <class name=”com.javaegitimleri.petclinic.model.Person” table=”persons” abstract=”true”> <cache usage=”read-write” /> <id name=”id” column=”ID” access=”field”> <generator /> </id> <version name=”version” column=”VERSION” type=”integer” access=”field” /> <properties name=”firstAndLastName” unique=”true”> <property name=”firstName” […]

Read More →
Hibernate’de Sınıf İlişkileri 4

Hibernate’deki sınıf ilişkilerini incelediğimiz yazı dizimizin bir önceki bölümünde 1:M ilişkileri incelemeye başlamıştık. Sınıflar arası ilişkilerde en detaylı ilişki türü olan 1:M ilişkileri kaldığımız yerden incelemeye devam edelim. 1:M ilişkilerde kullanılan diğer bir collection tipi ise java.util.List‘dir. List duplikasyona izin verir ve elemanların eklenme sıralarını da korur. Dolayısı ile elemanların liste içerisindeki sırasının veritabanında bir […]

Read More →
Kurumsal Java Eğitimleri Aralık 2013 Bülteni

Herkese Merhabalar, Yılın son bültenine öncelikle “Yazılım Projelerinde Gereksinim Analizi” konulu yazı dizimizin bu ayki bölümü ile başlamak istiyorum. Yazı dizisine ilk olarak proje, süreç gibi temel kavramların tanımlarını yaparak, birbirleri arasındaki ilişkileri ortaya koyarak başlamıştık. Bu ayki bölümde ise “blast off” olarak adlandırılan, proje başlangıç (kick-off) çalışmasından, bu çalışmanın amacı ve öneminden bahsediyoruz. İlgi […]

Read More →
Hibernate’de Sınıf İlişkileri 3

Hibernate ORM Framework’ündeki sınıflar arası ilişki kurma yöntemlerini incelediğimiz yazı dizimize üçüncüsü ile devam ediyoruz. İlk iki yazımızda 1:1 M:1 ilişkileri incelemiştik. Bu bölümde ise 1:M ilişkileri inceleyeceğiz. Öncelikle sadece entity – entity şeklindeki ilişkilere odaklanalım. Daha sonra entity – component arasındaki ilişkilere de bakacağız. İki entity arasında 1:M ilişki kurmak için @OneToMany annotasyonu kullanılır. […]

Read More →