dear all,

gemana yah caranya pakai fitur lazy loading ibatis di sisi web nya
(struts action nya)
kalo kita pakai struts. misal ada sql map seperti ini (ambil contoh yg
di doc ibatis) :

<resultMap id="get-category-result" class="com.ibatis.example.Category">
        <result property="id" column="CAT_ID"/>
        <result property="description" column="CAT_DESCRIPTION"/>
        <result property="productList" column="CAT_ID" select=" 
getProductsByCatId"/>
</resultMap>

<resultMap id="get-product-result" class="com.ibatis.example.Product">
        <result property="id" column="PRD_ID"/>
        <result property="description" column="PRD_DESCRIPTION"/>
</resultMap>

<select id="getCategory" parameterClass="int" resultMap="get-category-result">
        select * from CATEGORY where CAT_ID = #value#
</select>

<select id="getProductsByCatId" parameterClass="int"
resultMap="get-product-result">
        select * from PRODUCT where PRD_CAT_ID = #value#
</select>

Fitur lazy loading dan bytecode enhancement dah di enable.
Terus ada POJO, DAO, dan Action nya berturut-turut sbb :

POJO :
==============
public Class Category {
        private Integer id;
        private String description;
        private List productList;
        //... getter & setter
}

public Class Product {
        private Integer id;
        private String description;
        //... getter & setter
}

DAO
==============
public Class ... {
        ...
        public Category getCategoryByID(Integer id) {
                ...
                return queryForObject("getCategory", id);
        }
        ...
}

Struts Action :
==============
public Class ... extends Action {       
        ...
        public ActionForward getCategory ... {
                ...
                Category cat = objDAO.getCategoryByID(catID);
                request.setAttribute("category", cat);
                return mapping.findForward("success");          
        }
        ...
}

Kalo misalnya gw punya satu halaman web untuk menampilkan sebuah Category,
yang sudah di forward oleh Action getCategory, kemudian dalam halaman tersebut
gw punya link untuk membuka halaman baru lagi untuk melihat Products
apa saja yg
ada pada category itu, dari sini gw buatin 1 action lagi seperti di bawah
        
        ...
        public ActionForward getProducts ... {
                ...
                // disini gw bingung untuk ngambil value property productList
                // dari Category yang udah pake lazy loading            
                List products = ... // ??? from where ?
                ...
                return mapping.findForward("success");
        }
        ...

Nah dari titik ini apa yah yang harus gw lakukan untuk make
lazy loading?  apakah gw tetap harus balik lagi ke persistence layer
untuk ngambil
productList.

TIA.

Kirim email ke