Dalam aplikasi pemrograman yang berorientasi objek, persistencememperbolehkan sebuah objek untuk bisa tetap ada diluar proses aplikasi yang membuatnya (C. Bauer & Gavin King, Manning: Hibernate In Action). State dari objek tersebut disimpan pada datastore dan objek dengan state yang sama suatu saat dapat di buat kembali jika aplikasi dijalankan lagi.
Transient Object adalah object yang dibuat dimana state dari objek ini tidak disimpan pada datastore, sehingga tidak dapat dibuat kembali sebuah objek dengan state yang sama suatu saat. Masa hidup sebuah transient object terbatas pada proses yang membuatnya. Kebanyakan objek pada aplikasi terdiri dari gabungan persistent dan transient objek sehingga diperlukan sebuah sub-sistem yang menangani persistent objek
Domain model adalah representasi dari business entities yang digunakan dalam aplikasi java. Dalam arsitektur aplikasi yang terbagi menjadi beberapa layer,domain model digunakan untuk menjalankan business logic pada business layer(pada java bukan pada database). Business layer berhubungan dengan persistence layer untuk proses loading dan menyimpan persistent object dari domain model.
ORM adalah middleware pada persistence layer yang menangani persistent object.ORM bukan merupakan satu-satunya solusi permasalahan yang digunakan untuk menangani persistent object, cara lain yang bisa digunakan adalah dengan EJB atau langsung memakai SQL yang mengkopi nilai yang dari JDBC result set padapersistent object di domain model.
Hibernate ditulis dengan menggunakan bahasa pemrograman java meskipun saat ini juga dikembangkan untuk mendukung .NET framework. Persistent objectdapat dibuat menggunakan hibernate dengan idiom bahasa pemrograman java termasuk didalamnya association, inheritance, polymorphism, composition, java collection framework seperti Set, List, Map. Hibernate adalah free software yang menggunakan lisensi LGPL.
Hibernate mendukung banyak DBMS (Database Management System) antara lain Oracle, DB2, MySQL, PostgreSQL, Sybase, SAP DB, HypersonicSQL, Microsoft SQL Server, Posgress, McKoi SQL, Pointbase dan Interbase. Hibernate dapat diintegrasikan dengan Framework-framework java yang lain seperti JBoss(hibernate sekarang merupakan bagian dari JBoss Project), Spring Framework, Struts, JSF maupun framework java yang lain sebagai persistence layer.
Object Oriented Query Language (OOQL) yang digunakan oleh hibernate mendefinisikan join table sebagai object property path. Selain itu OOQL mendukung fungsi dan operator SQL, fungsi aggregat seperti sum, avg, min, max, count. OOQL mendukung fungsi group by, having dan order by. Hibernate juga mendukung sub query (sub select pada database). Query yang dihasilkan oleh hibernate mengembalikan nilai berupa Objek atau nilai skalar
Hibernate memiliki beberapa interface Sekumpulan Application Programming Interface (API) yang digunakan oleh business layer yaitu:
- Interface yang digunakan untuk melakukan operasi CRUD dan Query. Interface ini merupakan main point antara business logic dengan Hibernate. Interface tersebut adalah Session, Transaction dan Query.
- Interface yang digunakan oleh aplikasi untuk melakukan konfigurasi Hibernate, yang paling penting adalah class Configuration
- Callback Interface yang digunakan oleh aplikasi untuk event yang yang terjadi didalam Hibernate seperti Interceptor, Lifecycle, dan Validatable.
- Interface yang merupakan implementasi mapping Hibernate sepertiUserType, CompositeUserType, dan IdentifierGenerator
- SessionFactory, factory untuk Session, client dari ConnectionProvider.
- Session, class yang digunakan antara aplikasi dengan database. Session mengelola object untuk aplikasi. Session adalah wrapper dari sebuah koneksi JDBC
- Persistent Object & Collections, object yang memiliki persistent state dan bisnis proses, bisa berupa JavaBean. Persistent Object & Collection selalu mempunyai 1 Session.
- Transient Object & Collections, merupakan instance dari persistent classyang tidak terkait dengan Session. Transient Object & Collections bisa berupa object yang di buat oleh aplikasi yang di-persistent-kan. Atau obyek yang session telah di tutup (closed session).
- Transaction, object yang digunakan oleh aplikasi untuk menspesifikasikan unit kerja yang atomic. Transaction adalah abstraksi dari JDBC, JTA atau CORBA Transaction. Sebuah Session dapat memiliki lebih dari 1 Transaction.
- ConnectionProvider, yaitu abstraksi dari DataSource atau DriverManager. ConnectionProvider tidak di bisa diakses langsung oleh business layer.
- TransactionFactory, factory untuk Transaction
sumber: http://heru.wordpress.com/2006/03/21/berkenalan-sekilas-dengan-hibernate/
0 komentar:
Posting Komentar