Hibernate Plugin#
Proje içerisinde Hibernate teknolojisi kullanılması durumunda 'Bytecode Enchancement' desteğini sağlamaktadır. Bu yöntem ile veritabanı nesnelerinin(entity) class(bytecode) dosyalarında performans artırmak için değişiklikler yapmaktadır. Böylelikle runtime da veritabanı işlemlerinde performans artırımı sağlanmaktadır.
Yetenekleri#
- Lazy state initialization: Lazy loading yeteneklerini runtime bytecode enhancement ile aktif hale getirebilir. Bu yöntemle
@Basic(fetch = FetchType.LAZY))
gibi basit tipler bile lazy olarak çekilebilir. - Dirtiness tracking: Değişen alanların takibini sağlamak amacıyla dirty tracking yeteneği aktifleştirilebilir.
- Automatic bi-directional association management: Association management yeteneği ile entityler arasındaki çift yönlü ilişkileri otomatik olarak senkronize edebilir.
- Performans optimizasyonları
Kullanım#
Projelere iki farklı yöntem ile eklenebilmektedir. Yöntemler şunlardır:
Buildscript kullanımı
Pluginin birçok konfigurasyon parametresi bulunmaktadır. Proje içerisinde kullanımı ve parametreler aşağıdaki gibidir.
Konfigurasyon yapısı#
hvlHibernate {
enhance {
// @Lazy alanların yüklemesi işlemiinde iyileştirme yapılıp yapılmayacağı
enableLazyInitialization = true
// Nesne üzerinde değişiklik yapılan alanların izinin tutulup tutulmayacağı
enableDirtyTracking = true
// Çift yönlü ilişki yönetiminin yapılıp yapılmayacağı
enableAssociationManagement = true
// İlişkisel nesnelerin performans optimızasyonunun yapılıp yapılmayacağı
enableExtendedEnhancement = false
}
}
enableExtendedEnhancement
konfigürasyonu tüm ilişkisel nesne yapılarını tarayıp kod üreteceği için kullanırken çok dikkatli olunmalıdır. İstenmeyen davranışların ortaya çıkmasına neden olabilir. Gerekmedikçe kullanılması önerilmez.
Detaylı bilgiler için linkler: