JPA

JPA 04- Simple Composite Key

Merhaba arkadaşlar. Bu dersimizde Simple Composite Key konusunu öğreneceğiz.

Simple Key dediğimiz zaman anlamamız gereken şey Id özelliği için sadece bir alan kullanılmasıdır. Örneğin şöyle:

Composite Key dediğimiz zaman birden fazla alanın Id olarak kullanılabilmesidir kastettiğimiz olay. Birden fazla alan Id olarak kullanılır ve bu Id alanları POJO diyebileceğimiz başka bir sınıfta da kullanılırsa o zaman Simple Composite Key kullanmış oluruz. Ne denilmek istendiğine örnek kodla bakalım:

Car.java

Car sınıfımızın üstünde gördüğünüz üzere bir IdClass notasyonumuz var. Bu notasyona parametre kısmına verdiğimiz sınıf bizim Entity sınıfımızın Id özelliklerini barındıran sınıfdır. Car entitiy sınıfımız Id olarak int serial ve String brand kullanıyor. CarId sınıfımız da bu özellikleri içinde barındıracak.

CarId.java

Bizim Id olarak kullanacağımız alanları içinde barındıran CarId sınıfnın bu Simple Composite Key özelliğini taşıyabilmesi için

  • Parametre almayan varsayılan yapılandırıcı olması lazım.
  • Serializable arabirimini uygulaması lazım.
  • hashCode ve equals metotlarını kendi içinde ezmiş ( override ) olması lazım.

CarId sınıfımız gördüğünüz üzere bizim Id olarak kullanacağımız alanları içinde barındırıyor ve bunlara ait get-set metotlarına sahip. Bunun yanında nesne oluşturuken sınıfın sahip olduğu id nesnelerinin de kullanılabilmesi için 2 parametreli bir yapılandırıcı var.

Peki Bu Ne İşimize Yarayacak?

Buraya kadar konuyu anladığınızı fakat aklınıza bu ne işe yarayacak diye soru geldiğini düşünüyorum. 🙂

Bu Simple Composite Key JPA’nın find metodunu kullanırken işimize yarayacak. Sıradan entitiy sınıflarında bir id alanı olur ve bir kaydı bulup getirmek için

ifadesini kullanabiliriz. Ama bazı durumlarda iki ya da daha fazla id alanı kullanılmış olabilir. İşte bu durumda

kodu ile iki id alanımızı barındıran sınıftan bir nesne türetip onu id imiş gibi find metoduna verebiliriz. Böylece birden fazla id’si olan kayıtları rahatlıkla bulabiliriz.

Bu yazımızda da bu kadar arkadaşlar. Gelecek yazımızda Complex Composite Key konusunu işleyeceğiz. Sağlıcakla kalın.