Posts Tagged ‘Hibernate’

Table Index On Hibernate

Friday, June 4th, 2010

Buat teman-teman yang sudah terbiasa menggunakan MySQL mungkin pernah mendengar atau mendapatkan saran seperti ini “Jika ingin query-nya berjalan cepat maka kita harus menambahkan sebuah index pada kolom-kolom yang sering digunakan pada klausa where”. Saran seperti ini memang betul sih jika kita menggunakan MySQL sebagai solusi DataBase Server yang kita gunakan, sedangkan untuk DataBase Server lain mungkin berbeda lagi penerapan-nya karena saya juga belum mempunyai pengalaman :D

Dulu.. pada milis netbeans-indonesia@yahoogroups.com ada pertanyaan seperti ini “TANYA : Table Index Pada Hibernate” (thread lengkap untuk pertanyaan ini bisa dibaca disini), nah karena dulu saya juga belum tahu dan ketika itu mencari-cari referensi di Google juga tidak mendapatkan hasil yang memuaskan (apa saya yang kurang jeli ya ??) akhirnya keputusan terakhir adalah solusi pembuatan index harus dilakukan manual melalui MySQL bukan dari sisi Hibernate.

Nah ternyata, cara untuk menambahkan sebuah index pada sebuah kolom pada tabel di hibernate dapat dilakukan dengan menggunakan Annotations (@) @org.hibernate.annotations.Table pada domain class yang kita buat. Sedangkan cara penggunaan annotations @org.hibernate.annotations.Table adalah seperti contoh kode dibawah ini :

1
2
3
4
5
6
7
@org.hibernate.annotations.Table(
    appliesTo="< < table-name >>",
    indexes={
        @Index(name="< < index-name >>", columnNames={"< < column-names >>"}),
        @Index(name="< < another-index-name >>", columnNames={"< < another-column-names >>"})
    }
)

Yang perlu diperhatikan disini yaitu “Annotations @org.hibernate.annotations.Table ini bukan merupakan pengganti dari annotations @javax.persistence.Table” dan dibawah ini adalah kutipan dari halaman manual hibernate :

@org.hibernate.annotations.Table is a complement, not a replacement to @javax.persistence.Table. Especially, if you want to change the default name of a table, you must use @javax.persistence.Table, not @org.hibernate.annotations.Table.

Merasa penasaran ??? Jika iya, yuk mari kita coba sekarang :) Peralatan yang dipakai pada latihan kali ini adalah :

  1. MySQL DataBase
  2. Hibernate Annotations
  3. Spring Framework 3.0.2

(more…)