Why are you using interfaces for beans?

Larry


On 12/12/05, Perry Nguyen <[EMAIL PROTECTED]> wrote:
> I have interfaces for all of my domain objects, thus, I have something
> like this contrived example:
>
> interface Person {
>    Address getAddress/setAddress
>    String getName/setName
> }
>
> interface Address {
>    String getStreetName/setStreetName
> }
>
> class ConcretePerson {
>    // implement Person interface
> }
> class ConcreteAddress {
>    // implement Address interface
> }
>
> Person and Address are in a 1:1 relationship.
>
> Say I want to load the address object in a join with person, how do I do
> that?
>
> <resultMap id="myResult" class="ConcretePerson">
>    <result property="name" column="PERSON_NAME"/>
>    <result property="address.streetName" column="ADDR_ST_NAME"/>
> </resultMap>
> <!-- using the above resultMap results in an InstantiationException
> because Address is an interface -->
>
> <select ... resultMap="myResult">
>    select p.name as person_name, a.name as addr_st_name
>    from person p, address a
>    where p.addr_id = a.id
> </select>
>
> Alternatively, I tried
> <resultMap id="myResult" class="ConcretePerson">
>    <result property="name" column="PERSON_NAME"/>
>    <result property="address" resultMap="myAddrResult"/>
> </resultMap>
> <resultMap id="myAddrResult" class="ConcreteAddress">
>    <result property="streetName" column="ADDR_ST_NAME"/>
> </resultMap>
>
> This results in an instantiation exception as well, except the exception
> occurs while attempting to populate a List for the address property.
>
> Are there any solutions for this?  IBATIS-225 looks promising, but that
> is so far down in the list and this problem is blocking me currently...
>
>

Reply via email to