NHibernate Guide


Your first NHibernate based application
– QuickStart with NHibernate:

  1. Hello NHibernate
  2. Implementing a Repository with NHibernate
  3. Mapping Object Relationships
  4. Working with Primary Keys and Generators
  5. Working with Many to Many relationships
  6. Parent-Child Relationships
  7. Repository Pattern and Unit of Work
  8. Guid Comb Example
  9. HiLo

NHibernate Documentation
NHibernate Beginer Book

Advertisements

First and Second Level Cache


Baik first level maupun second level itu sangat dianjurkan buat dipake diproduction.

First level cache selalu ada, gak bisa dimatiin. Itu gak berhubungan dengan koneksi ke db. First-level cache ini merujuk ke object yg ter-attach ke unit-of-work tertentu (nhibernate-session). Jadi selama lu load sebuah row dari session yang sama, lu bakal dibalikin reference ke object yang sama, karna ini adalah object yang ditrack oleh session tersebut selama unit-of-work, sampe entity tersebut dievict ato session tersebut didispose.
First level cache ini fungsinya bukan buat performance reason (walopun memang tetep improve performance), melainkan ini behavior yang dibutuhkan buat menjaga unit-of-work semantics, yang dah inherent dari cara kerja nhibernate, gak bisa dimatiin.

Second-level cache adalah across sessions. Ini sifatnya optional, tapi sangat penting dipake di production. Gunanya purely buat performance reason, ngurangin hit ke database, dengan memanfaatkan high-performance cache.
Yang gak boleh dipake adalah default providernya, yaitu menggunakan in-memory cache, yang bakal ngaco kalo dipake di production, karna cachenya gak terdistribute dengan benar antar instances di dalem cluster/web-farm.
Mesti diganti dengan production-grade cache provider, typically yg menggunakan DHT. Memcached misalnya.

~ hendryluk