> 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