JPA, Hibernate, ORM & Entity Classes

Berhubung gw baru nyadar kalo gw lagi kebanyakan posting hari ini, dan postingannya pada gak jelas semua, gw tutup postingan hari ini pake sesuatu yang lebih serius. Kita bicarain tentang JPA (Java Persistence API), Hibernate, ORM dan Entity Classes yang bisa kamu temuin di Netbeans. Sebenernya, khusus yang terakhir, itu gak lebih dari cara Netbeans menggampangkan penerapan JPA itu. Jadi sebenernya agak2 gak correlated.

Tapi, ini bukan blog balita. Jadi isinya bukan tutorial cara simple, tapi lebih ke masing-masing hubungan dari JPA, Hibernate dan ORM.

Singkat cerita gini…. Ada sebuah spesifikasi yang bernama JPA. Spesifikasi ini bisa dibilang sebagai perbaikan dari cara pengaksesan database oleh aplikasi yang dibangun pake bahasa java. Biasanya, pengaksesan ini dibuat menggunakan library JDBC, dan programmer meletakkan query SQL pada salah satu atau beberapa kelas java. Itu cara lama…. Cara baru dengan menggunakan spesifikasi JPA. Ada suatu bentuk pemetaan dari pengaksesan tabel ke dalam bentuk kelas java. Jadi, nantinya, programmer gak usah tau “layer” bawah yang berisi database. Cukup fokus ke kelas yang memetakan database itu. Nah… konsep yang diusung oleh spesifikasi tersebut, merupakan teknologi bernama ORM (Object Relational Mapping). Salah satu framework yang mengusung teknologi ORM adalah hibernate. Dan salah satu hal yang diperlukan adalah entity classes yang bisa di-generate pake Netbeans. Eh… tapi nantinya, bukan berarti library JDBC gak diperluin lagi lhoh yah… Tetep dipake, cuma cara penulisan kode di class2-nya yang beda.

Jadi…. udah tau yah…. kira2 hirarkinya gini

ORM (konsep umum) –> JPA (Spesifikasi khusus java) –> Hibernate –> Entity Classes

Gitu… Kalo MVC?! MVC c lain lagi… MVC itu suatu pattern atau bisa kita kategorikan sebagai konsep pemrograman yang membagi kelas dalam 3 bentuk: Model, View dan Controller. Simple-nya, Model untuk data, View untuk presentasi dan interaksi ke user, trus Controller buat ngehubungin antara Model sama View. Model sendiri gak ada hubungannya sama database. Dia bisa jadi tempat logika penyimpanan data ke file, atau penyimpanan nilai objek. Cuma, banyak yang langsung bilang kalo model ini nantinya membuat kita blind tentang pengaksesan data. Kayak informasi jenis database yang digunakan, query yang harus ditulis de el el. Pemikiran itu dikit benar, salah banyak yah… Bukannya kenapa2… kalo emang gitu, artinya udah merembet ke ORM. Model, bisa dikenai ORM dalam implementasinya ketika menggunakan framework MVC. Contohnya ajah pas make framework symfony (gw cuma tau versi 1.4 tapinya), modelnya bisa menggunakan ORM doctrine. Hal ini optional. Cuma, karena rata2 aplikasi sekarang kayaknya udah pada “harus” dan “butuh” make database, jadilah contoh2 best-practicenya langsung ajah ngegabungin hal itu. Dan kadang buat programmer pemula yang gak baca baek2 dokumentasinya jadi salah tanggap di awal.

Sooo… seperti yang kalian tau kalo gw itu programmer pemula. Silahkan dibenarkan struktur pemikran di atas. Jangan percaya langsung ajah yah. Ituh gak boleh… Coz katanya, percaya tuh ama Tuhan… jangan ama gw :p

Advertisements

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s