ibatis-user-java mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Larry Meadors" <lmead...@apache.org>
Subject Re: Can I use Map or XML result in mapping complex properties
Date Mon, 22 May 2006 12:18:14 GMT
Don't use the XML support in iBATIS - it's pretty crappy and very
likely going to go away in iB3.

Larry


On 5/21/06, Shepherdz <zhaoxinpei@ndtech.com.cn> wrote:
>
> Our project needs to use generic result structure to recieve results of a
> query, i.e. Map or XML. How can I use Map or XML result in mapping complex
> properties?
>
> Following is a sample mapping file I write.
>
> <sqlMap namespace="User">
>   <resultMap id="interestGroupResult" class="java.util.HashMap"
> groupBy="id">
>     <result property="id" column="GroupID"/>
>     <result property="name" column="GroupName"/>
>     <result property="description" column="GroupDesp"/>
>     <result property="interests" resultMap="User.interestsResult"/>
>   </resultMap>
>   <resultMap id="interestsResult" class="java.util.HashMap" groupBy="id">
>     <result property="id" column="InterestID"/>
>     <result property="name" column="InterestName"/>
>     <result property="description" column="InterestDesp"/>
>     <result property="users" resultMap="User.userResult"/>
>   </resultMap>
>   <resultMap id="userResult" class="java.util.HashMap">
>     <result property="id" column="UserID"/>
>     <result property="name" column="UserName"/>
>     <result property="password" column="UserPassword"/>
>     <result property="firstName" column="UserFirstName"/>
>     <result property="middleName" column="UserMiddleName"/>
>     <result property="lastName" column="UserLastName"/>
>     <result property="age" column="UserAge"/>
>     <result property="affiliation" column="UserAffiliation"/>
>     <result property="email" column="UserEmail"/>
>     <result property="telephone" column="UserTelephone"/>
>     <result property="mobile" column="UserMobile"/>
>   </resultMap>
>   <select id="showGroupUser" parameterClass="java.lang.String"
> resultMap="interestGroupResult">
>     SELECT G.ID as GroupID, G.Name as GroupName, G.Description as GroupDesp,
>     I.ID as InterestID, I.Name as InterestName, I.Description as
> InterestDesp,
>     U.ID as UserID, U.Name as UserName, U.Password as UserPassword,
> U.FirstName as UserFirstName, U.MiddleName as UserMiddleName,
>     U.LastName as UserLastName, U.Age as UserAge, U.Affiliation as
> UserAffiliation, U.Email as UserEmail, U.Telephone as UserTelephone,
>     U.Mobile as UserMobile
>     FROM UserInterestsGroup G
>     LEFT OUTER JOIN UserInterest I ON I.InterestGroup = G.ID
>     LEFT OUTER JOIN Users U ON U.Interest = I.ID
>     WHERE G.ID = #value#
>  </select>
> </sqlMap>
>
> However, an exception is thrown:
> "com.ibatis.sqlmap.client.SqlMapException: Error instantiating collection
> property for mapping 'interests'.  Cause: java.lang.ClassCastException:
> java.lang.Object"
>
> Is my mapping statement invalid? Or the iBatis does not allow mapping Map or
> XML as collection propery?
>
> --
> View this message in context: http://www.nabble.com/Can+I+use+Map+or+XML+result+in+mapping+complex+properties-t1661124.html#a4500363
> Sent from the iBATIS - User - Java forum at Nabble.com.
>
>

Mime
View raw message