Hi Jeff,

Thanks for the clarification. I have filed a jira request (IBATIS-225)

Anyone who may find this useful, please vote for it.

Huy

Jeff Butler wrote:

I believe this is because reusing result maps is a feature of the "groupBy" function, and iBATIS assumes the property will be a Collection of some kind. So, the real answer is that you can reuse result maps if your properties are collections. Otherwise not. I'm not sure if this is an oversight or "by design" - but it probably should be fixed/enhanced. You could file a JIRA request to help us remember. Jeff Butler On 11/17/05, *Medium* <[EMAIL PROTECTED] <mailto:[EMAIL PROTECTED]>> wrote:

    I tried this, but get the following error. I am using the java version
    2.1.6.589 (Sorry about the long trace). Hoping someone can shed some
    light on this.

    Thanks.

    Huy


    My map is below:


    <sqlMap namespace="Pick">
    <resultMap id="pickResultMap" class="package.domain.Pick">
       <result column="pick_id" property="pickId"/>
       <result column="pick_ref" property="pickRef"/>
    </resultMap>
    <resultMap id="pickJoined" class="package.domain.Pick"
    extends="pickResultMap">
       <result property="sale" resultMap="Sale.Sale"/>
    </resultMap>
    </sqlMap>

    <sqlMap namespace="Sale">
    <typeAlias alias="Sale" type=" openlink.domain.Sale"/>
    <resultMap id="Sale" class="Sale">
       <result column="sale_id" property="saleId"/>
    </resultMap>
    </sqlMap>

    org.springframework.jdbc.UncategorizedSQLException: (SqlMapClient
    operation): encountered SQLException [
    --- The error occurred in openlink/dao/ibatis/maps/Pick.xml.
    --- The error occurred while applying a result map.
    --- Check the Pick.pickJoined.
    --- The error happened while setting a property on the result object.
    --- Cause: com.ibatis.sqlmap.client.SqlMapException: Error
    instantiating
    collection property for mapping 'sale'.  Cause:
    java.lang.ClassCastException
    Caused by: java.lang.ClassCastException]; nested exception is
    com.ibatis.common.jdbc.exception.NestedSQLException:
    --- The error occurred in openlink/dao/ibatis/maps/Pick.xml.
    --- The error occurred while applying a result map.
    --- Check the Pick.pickJoined.
    --- The error happened while setting a property on the result object.
    --- Cause: com.ibatis.sqlmap.client.SqlMapException: Error
    instantiating
    collection property for mapping 'sale'.  Cause:
    java.lang.ClassCastException
    Caused by: java.lang.ClassCastException
    com.ibatis.common.jdbc.exception.NestedSQLException:
    --- The error occurred in openlink/dao/ibatis/maps/Pick.xml.
    --- The error occurred while applying a result map.
    --- Check the Pick.pickJoined.
    --- The error happened while setting a property on the result object.
    --- Cause: com.ibatis.sqlmap.client.SqlMapException: Error
    instantiating
    collection property for mapping 'sale'.  Cause:
    java.lang.ClassCastException
    Caused by: java.lang.ClassCastException
    Caused by: com.ibatis.sqlmap.client.SqlMapException: Error
    instantiating
    collection property for mapping 'sale'.  Cause:
    java.lang.ClassCastException
    Caused by: java.lang.ClassCastException
       at
    
com.ibatis.sqlmap.engine.mapping.statement.GeneralStatement.executeQueryWithCallback(GeneralStatement.java:188)
       at



    Gilles Bayon wrote:

    > This syntax
    > <resultMap id="product">
    > <result property="id" column="PRD_ID"/>
    > <result property="description" column="PRD_DESCRIPTION"/>
    > <result property="category" resultMap="category">
    > </resultMap>
    >
    > is supported .
    >
    >
    > On 11/16/05, *Medium* < [EMAIL PROTECTED]
    <mailto:[EMAIL PROTECTED]>
    > <mailto:[EMAIL PROTECTED] <mailto:[EMAIL PROTECTED]>>>
    wrote:
    >
    >     Hi,
    >
    >     Is there a way to reuse a resultmap for a nested object ?
    >
    >     I know how to map it as specified by the docs but its
    getting a bit
    >     unwieldly with all the repetition.
    >
    >     Docs:
    >     <resultMap>
    >     <result property="id" column="PRD_ID"/>
    >     <result property="description" column="PRD_DESCRIPTION"/>
    >     <result property="category.id <http://category.id>"
    column="CAT_ID" />
    >     <result property="category.description"
    column="CAT_DESCRIPTION" />
    >     </resultMap>
    >
    >     Goal:
    >     <resultMap id="product">
    >     <result property="id" column="PRD_ID"/>
    >     <result property="description" column="PRD_DESCRIPTION"/>
    >     <result property="category" resultMap="category">
    >     </resultMap>
    >
    >     <resultMap id="category">
    >     <result property="id" column="CAT_ID"/>
    >     <result property="description" column="CAT_DESCRIPTION"/>
    >     </resultMap>
    >
    >     Any help would be greatly appreciated. A simple yah or nah would
    >     do fine
    >     as well.
    >
    >     Thanks
    >
    >     Huy
    >
    >



Reply via email to