ibatis-user-java mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Raymond McDermott" <...@mcdermott.be>
Subject Re: Am I missing something really simple? Way to avoid adding all props in a map if I decide to add one extra collection to pojo
Date Tue, 18 Nov 2008 20:43:33 GMT
iBatis supports automatically mapping in beans where the property names
match the getters/setters so you are in luck ;-)
See page 33 of the manual for 'implicit result maps'

2008/11/18 Rick <rickcr@gmail.com>

> I sent this tot he wrong list before, so I'm resending it. I think it
> would be a huge plus for ibatis. I don't mind digging into the source
> code... would it be a really tough fix? To modify result maps to allow
> them being based on result classes? Has this been brought up before.
> Just curious.
>
> To sum up if you don't read the original email - I can easily get this
> back in one query and notice how I don't need every property mapped.
> (The current way, you need an Address map of every property and and
> Associate with every property, when all I want to do is map up the
> column names directly to the objects)
>
>  <!-- populated all properties on the BusinessEntity class if you can,
> without mapping them !!!! --->
> <resultMap id="beResult" class="BusinessEntity" groupBy="businessEntityID">
>      <!-- directly map *** resultClasses not maps !  ***--->
>    <result property="associates" resultClass="BusinessEntity"/>
>     <result property="address" resultClass="Address"/>
> </resultMap>
>
> for:
> BusinessEntity {
>   String name;
>   String abbreviation;
>   Integer id;
>   //..etc
>   Address address
>   List<Associate> associates
> }
>
>
> On Mon, Nov 17, 2008 at 10:56 AM, Rick <rickcr@gmail.com> wrote:
> > Hopefully I'm just being a newb and missing something simple. It's
> > been a while since I worked with iBATIS:)...
> >
> > My column names and pojo names are the same, so typically I don't even
> > need a result map created to map my properties (I can just map my
> > resultClass to the query). Where things break down though is if I want
> > to nest a collection of another object in one of my pojos. For example
> > in the code below BusinessEntity can have "Associates" so I've added a
> > List<Associate> field to my BusinessEntity pojo.  What I'd love to do
> > now is somehow get my BusinessEntity populated and the nested
> > Associate lists populated *WITHOUT* having to go through and declare
> > EVERY SINGLE property in a Map (since my fields match up fine to the
> > columns.) It seems though that I can't do this? Am I missing an easy
> > way to avoid this? I wish I could do something like:
> >
> >  <!-- populated all properties on the BusinessEntity class if you can!!!!
> --->
> > <resultMap id="beMap2" class="BusinessEntity" groupBy="businessEntityID">
> >       <!-- directly map a *** resultClass !  ***--->
> >      <result property="associates" resultClass="BusinessEntity"/>
> > </resultMap>
> >
> > (Is there a work around?)
> >
> > Instead of the above I'm currently having to do:
> >
> >  <!-- example poulating the Value Objects -->
> > <resultMap id="beMap2" class="BusinessEntity" groupBy="businessEntityID">
> >   <result property="businessEntityID" column="businessEntityID"/>
> >   <result property="name" column="name"/>
> >
> >   ...// *** having to map all my other props?
> >
> >  <result property="addressLine1" column="addressLine1"/>
> >   <result property="associates" resultMap="BusinessEntity.assMap2"/>
> > </resultMap>
> >
> > <resultMap id="assMap2"
> class="com.nielsen.ondp.persistence.model.Associate">
> >   <result property="firstName" column="firstName"/>
> >   <result property="lastName" column="lastName"/>
> >
> >    ...// *** having to map all my other props?
> >
> > </resultMap>
> >
> > the simple query:
> >
> > <select id="findBEsWithAssociates2" resultMap="beMap2"
> cacheModel="beCache">
> >     SELECT be.*, a.*
> >     FROM NPPBusinessEntity be, NPPAssociate a
> >     WHERE a.businessEntityID = be.businessEntityID ORDER BY
> be.businessEntityID
> > </select>
> >
>
>
>
> --
> Rick
>



-- 
Ray McDermott
GSM 047/32.53.854

Mime
View raw message