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 →
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 →
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 →
Hibernate’de Sınıf İlişkileri 2

Hibernate’de sınıflar arası ilişkileri incelediğimiz yazı dizimizin ilk bölümünden sonra ikinci bölüm ile devam ediyoruz. Bu bölümde M:1 ilişkiler üzerinde duracağız. M:1 ilişkiler entity-entity veya component-entity şeklinde olabilir. Fakat target sınıfın component yani “Embeddable” olması mümkün değildir. Çünkü herhangi bir bileşenin ancak ve ancak tek bir sahibi olabilir. Birden fazla entity instance’ın ortak bir bileşene […]

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

Herhangi bir ORM çözümünün nesne model üzerinden çalışmayı sağlayabilmesi için öncelikle uygulamanın nesne modeli ile veri modeli arasında eşleştirme yapılması gerekir. Bu aşamada; sınıflar ile tablolar property’ler ile sütunlar sınıflar arası ilişkiler ile foreign key’ler java tipleri ile SQL veri tipleri arasında eşleştirmeler yapılır. Bu yazı dizimizde spesifik olarak JPA ve Hibernate’in sınıflar arası ilişkiler […]

Read More →