--- In jug-indonesia@yahoogroups.com, Joshua Partogi <joshua.j...@...> wrote:
>
> Clearly Eager fetching itu bukan solusi yang elegan. Tetapi nambahin
> left join fetch atau inner join fetch di HQL-nya juga kurang elegan,
> karena secara tidak langsung kita sudah 'secara implisit memberi tahu
> untuk mem-fetch object tersebut' yang akhirnya menambah query (kalau
> liat di log-nya). Secara semantik seharusnya si webframework dapat
> menghandle:
> "Ok disini gw mengambil object yang penting dulu, tapi nanti ketika gw
> butuh yang lain, tolong ambilin"
> 
> Jadi misalnya gw punya:
> 
> class Product{
>   Category c;
> }
> 
> class Category{
> }
> 
> Di HQL gw cukup ambil Product saja: "from Product p" karena memang
> butuhnya cuman itu.
> 
> Tapi ketika di view gw tarik: product.getCategory() si framework bisa
> secara cerdas mengambil category tanpa men-throw LIE.
> 
> Bukankah tujuan dari Lazy initialization adalah seperti itu?
> 

Maaf sebelumnya..

saya mo tanya.. :)
AFAIK memang Fetch.EAGER jadi bikin "double Query"..
klo untuk tabel yang master detail (1-N) ?.. solusi yang baiknya gimna yach?..
klo pake native SQL gimna yach?..
jadi 2 kali select..
yg pertama untuk ambil si master..
yg kedua untuk ambil si detail..
return yg dihasilkan jadi List<Object[]>..
klo dilihat di lognya sih querynya lebih "sedikit"..

OSIV apakah baik untuk diimplementasikan?..
menurut komentarnya Pak Endy.. itu akan menyebabkan "leaky abstraction"..

mohon pencerahannya yach saya masih kurang paham.. :)
terima kasih sebelumnya yach.. :)

Kirim email ke