EclipseLink – 00 – Hello ORM

Hamd alemlerin Rabbi olan, insana bilmedigini ogreten Allah’a mahsustur.

“Ve ma tevfîkî illa billah aleyhi tevekkeltü ve ileyhi ünîb”
“…Başarım ancak Allah’tandır, O’na güvendim; O’na yöneliyorum.”
Hûd suresi /88

Yeni bir yazi dizisinden herkese merhabalar !
OCE JPAD sinavina hazirlandigim icin bu yazilar boyunca EclipseLink ORM aracini inceleyecegiz.
Sinava hazirlik surecinde tuttugum notlari ve kodlari burada paylasacagim. Oncelikle genel kavramlari anlayalim sonraki bolumlerde EclipseLink’e giris yapacagiz.

Eger temel bir Java SE bilginiz yoksa ve oncesinde JDBC ile hasir nesir olmadiysaniz oncelikle bu eksigi tamamlayin. ORM arka planda JDBC teknolojisini kullanmaktadir.

Object Relational Mapping (ORM) nedir ?

Object Relational Mapping , Java objeleri ile iliskisel veritabani arasindaki baglantiyi ve yonetimi saglayan bir tekniktir. Mapping kelime anlami olarak “esletirme” anlamina gelmektedir.

En temel olarak dusunecegimiz kavram Tablo ile Java sinifini esletirilmesidir. Person sinifimiz ile Person table arasindaki eslestirme gibi. Sinifimizdaki instance variable’lar tablomuzdaki column’lara denk gelmektedir.

ORMMapping

ORM Tools

ORM teknolojisi Java’ya ozgu bir teknoloji degildir. Hatta ORM teknigi Java’dan daha eskidir.

Pre-Java ORM Tools (Java Oncesi ORM Araclari)

  • Toplink for SmallTalk
  • IBM OBjectExtender
  • NextDBKit

Java ORM Tools : First Generation

  • JavaBlend
  • Toplink for Java
  • EJB 1.0
  • EJB 2.0

Java ORM Tools : Second Generation

  • Ibatis , 2001
  • Castor , 2002
  • Hibernate , 2002
  • Java Data Objects (JDO) , 2002
  • Java Persistence APi (JPA) , 2006

Java Persistence API

Java Persitence API, Object Relational Mapping teknigini uygulamak icin tanimlanan bir guideline/kurallardir. Java Persistence API bir specification/sartname dir , urun degildir.  JPA kendi basina bir sey yapamaz , bir implementation gereklidir.

  • JPA basit , guclu ve esnek bir yapiya sahiptir.
  • POJO modelli gelistirme
  • Object Oriented , inheritance destegi , polymorphism
  • Transaction , caching destegi
  • Java Persistence Query Language , Query API
  • Criteria API, Bean Validation Support

Java Persistence API Release Date

  • Java Persistence API (JPA) 1.0 , EJB 3.0 in bir parcasi olarak 2006 Mayis ayinda geldi.
    Java EE 5 , JSR – 220
  • Java Persistence API (JPA) 2.0 ,  2009 Aralik ayinda Java EE 6 ile geldi. JSR – 317
  • Java Persistence API (JPA) 2.1 , 2013 Mayis ayinda Java EE7 ile geldi. JSR – 338

JPA Implementations

Bazi JPA uygulamalari sunlardir ;

  • EclipseLink
  • Hibernate
  • Open JPA
  • DataNucleus

jpa Implementations

EclipseLink

EclipseLink , Java Persistence API’nin reference implementation’idir.Oracle in gelistirmis oldugu Toplink urununu baz almaktadir. Toplink urunu Eclipse Foundation’a verildi ve artik EclipseLink olarak devam etmektedir.

eclipselink

EclipseLink Version Date

EclipseLink icin bazi version cikis tarihlerine bakacak olursak ;

  • 2.6.2 December 22nd, 2015
  • 2.6.1 October 15th, 2015
  • 2.6.0 March 10th, 2015
  • ….
  • 2.5.0 May 27, 2013
  • 2.4.0 June 27, 2012
  • 2.3.0 June 22, 2011
  • ….
  • 2.0.0 December 10, 2009
  • ….
  • 1.0.0 July 8, 2008

EclipseLink Releases

Hibernate

En populer JPA implementation’idir. Hibernate 2 tane ORM urunu icermektedir.
Bir tanesi Native Hibernate API digeri ise JPA implementation’idir.

JPA vs Hibernate vs EclipseLink?

Unutmayalim JPA sadece bir sartnamedir/specificationdir.  Eger bir ORM cozumu JPA kullanilacaksa bu durumda mutlaka bir JPA implementation secilmelidir. Iste bu implementation’lardan biri Hibernate ORM dir.

Hibernate 2001 yilinda Gavin King tarafindan EJB 2.0 Entity Beanlere karsilik olarak gelistirilmeye baslanmistir. Suan JBoss firmasi tarafindan gelistirilmesi devam etmektedir.

Hibernate bir urundur , ORM aracidir. JPA ise bir sartnamedir, kurallar butunudur.

Hibernate hem Native Hibernate API olarak ORM cozumu sunarken hem de JPA implementation olarak bir ORM cozumu saglar. Diledigimizi kullanabiliriz.

EclipseLink de Hibernate gibi bir ORM aracidir. EclipseLink , JPA 2.X in reference implementation’idir.

Popularity

JRebel in 2014 yili yapmis oldugu Java teknolojileri icin kullanim oranini inceleyecek olursak ORM populerligi olarak HIbernate’in acik ara onde oldugunu gorebiliriz.

Java Tools and Technologies Landscape for 2014

popularity

Stackoverflow

Stackoverflow da ufak bir arastirma yaptigimizda asagi yukari su bilgilere ulasabiliriz.

  • ORM 77,335 results
  • JPA 72,617 results
  • JDO 3,578
  • Hibernate 49,813 results
  • Hibernate JPA 32,838 results
  • EclipseLink 11,642 results
  • Datanucleus 2,431 results
  • OpenJPA 2,604 results

Sonuc olarak

Hibernate in JPA implementation jar’ini kullandigimizda  bir baska JPA implementation’a gecis yapmak son derece kolaydir.
Ornegin persist metodu veritabanina kayit eklemektedir. JPA sartnamesinde yer alan bu metotu Hibernate , EclipseLink ya da Open JPA urunlerinden herhangi birini kullanarak yapabiliriz. Sonucta yapacaklari is aynidir.

Bu yazilar boyunca reference implementation olan EclipseLink kullanacagiz. Ilerleyen bolumlerde Hibernate JPA entegrasyonunu da gerceklestirecegiz.

Yazimi burada sonlandiriyorum.
Herkese Bol Javali Gunler dilerim.
Be an oracle man , import java.*;
Levent Erguder
OCP, Java SE 6 Programmer
OCE, Java EE 6 Web Component Developer

Print Friendly, PDF & Email

Leave a Reply to FURKAN KAYA Cancel reply

Your email address will not be published. Required fields are marked *