> From Barang b left join fetch b.kategori
> left join fetch b.jenis
> left join fetch b.jenis.satuan
> left join fetch b.jenis.satuan.supplierr

yak ini bagus, tapi kamu perlu pertimbangkan sebenarnya perlu ga sih
fetch semua data sekaligus? karena query ini akan melakukan join ke
nyaris semua relasi. Misalnya daftar barangnya ada ribuan, maka proses
querynya akan sangat mahal. Pertimbangkan untuk hanya mengambil data
barang saja, dan fetch relasinya kalau perlu.

langkah 1 : ambil lisnya
"from Barang b"

kalau diperlukan detailnya baru gunakan method get

Barang barang = session.get(Barang.class, barang.getId());
Hibernate.initialize(barang.getKategori());
Hibernate.initialize(barang.getJenis());
Hibernate.initialize(barang.getJenis().getSatuan());
Hibernate.initialize(barang.getJenis().getSatuan().getSupplier());

Eh kalau diatas kan querynya jadi banyak beberapa kali tuh, bagusan
mana dengan ?

Barang barang = (Barang)session.createQuery("From Barang b left join
fetch b.kategori left join fetch b.jenis left join fetch
b.jenis.satuan left join fetch b.jenis.satuan.supplier where
b.id=:id").uniqueResult();

ada perbedaan signifikan dari sisi efisiensi?

-- 
Senior Engineer @ ArtiVisi Intermedia
Java Training Center
See our course @ artivisi.com

http://ifnu.artivisi.com
+62 856 9211 8687
regards

Reply via email to