How many BasicStakeholder objects are returned from this query?  >From your prior message with the sample result set, I would expect that two are coming back.  Is that correct?  Are the two non-List properties of BasicStakeholder set properly?
 
If you're getting the correct number back, then the only problem is that the Votes list of each BasicStakeholder object is empty (or null) - correct?
 
Jeff Butler

 
On 4/18/06, Eric Bauld <[EMAIL PROTECTED]> wrote:
Re: Larry

I am using iBATIS 2.7.1
By reversing the order of the result map definitions do you mean putting
the "votes" resultmap before the "stakeMap" result map ?
I have an updated stakeholder.xml at the end of this. But still getting
the same problem with the null.

Re: Jeff

Sorry, groupBy="requirementId" was left over from me changing things
trying to fix this
The unique identifier is databaseId

I used to have
<resultMap id="stakeMap" class="rp.object.baseImpl.BasicStakeholder"*
groupBy="databaseId"*>

and I tried with that and
<resultMap id="stakeMap" class="rp.object.baseImpl.BasicStakeholder"*
groupBy="databaseId,weight"*>

But still get the null being passed to the setVotes(List votes) instead
of any vote data

------------stakeholder.xml------------------
<?xml version="1.0" encoding="UTF-8" ?>

<!DOCTYPE sqlMap
PUBLIC "-//iBATIS.com//DTD SQL Map 2.0//EN"
"http://www.ibatis.com/dtd/sql-map-2.dtd">

<sqlMap namespace="Stakeholder">

   <resultMap id="votes" class=" rp.object.baseImpl.BasicVote">
       <result property="userId" column="userId"/>
       <result property="instanceId" column="instanceId"/>
       <result property="requirementId" column="requirementId"/>
       <result property="criteriaId" column="criteriaId"/>
       <result property="voteValue" column="voteValue"/>
   </resultMap>

   <resultMap id="stakeMap" class=" rp.object.baseImpl.BasicStakeholder"
groupBy="databaseId">
       <result property="databaseId" column="databaseId"/>
       <result property="weight" column="weight"/>
       <result property="votes" resultMap="Stakeholder.votes"/>
   </resultMap>

   <select id="getStakeholders" resultMap="stakeMap">
       SELECT v.user_id AS databaseId,
           uw.weight AS weight,
           v.user_id AS userId,
           i.instance_id AS instanceId,
           v.requirement_id AS requirementId,
           v.criteria_id AS criteriaId,
           v.value AS voteValue
       FROM vote v, user_weight uw, instance i
       WHERE i.instance_id = #value#
       AND i.instance_id = uw.instance_id
       AND i.instance_id = v.instance_id
       AND uw.user_id = v.user_id
   </select>

</sqlMap>



Jeff Butler wrote:
> I think you should have this:
>
> <resultMap id="stakeMap" class="rp.object.baseImpl.BasicStakeholder "
> *groupBy="databaseId, weight"*>
>        <result property="databaseId" column="databaseId"/>
>        <result property="weight" column="weight"/>
>        <result property="votes" resultMap="Stakeholder.votes"/>
>    </resultMap>
>
>    <resultMap id="votes" class=" rp.object.baseImpl.BasicVote ">
>        <result property="userId" column="userId"/>
>        <result property="instanceId" column="instanceId"/>
>        <result property="requirementId" column="requirementId"/>
>        <result property="criteriaId" column="criteriaId"/>
>        <result property="voteValue" column="voteValue"/>
>    </resultMap>
>
> groupBy is used to specify the fields in the current object that are
> used to identify unique objects.  I think you want two unique
> BasicStakeholder objects with different lists contained.  Your
> configuration is failing because requiremnentId is not a property of
> BasicStakehoder.
>
> Jeff Butler
>
>
>
>
> On 4/18/06, *Eric Bauld* < [EMAIL PROTECTED]
> <mailto:[EMAIL PROTECTED]>> wrote:
>
>     I have been trying to get this to work for 2 days, every time iBATIS
>     loads the setVotes(List votes) method in BasicStakeholder the list
>     that
>     is pass in is ALWAYS null no matter what changes I make.
>
>     It may be worth noting I get the same result if I put <result
>     property="votes" resultMap="Stakeholder.votes"/>
>     to <result property="votes" resultMap="I can put anything here"/> And
>     get the same result.
>
>     I have the following data from this query, there are votes so they
>     should be getting returned ????
>     I debuged with a breakpoint on the setVotes() method and the
>     BasicStakeholder object was loaded with the user id and the
>     weight, but
>     the list passed in was null, for the user with id of "3" and he
>     has 4 votes.
>
>            SELECT v.user_id AS databaseId,
>                uw.weight AS weight,
>                v.user_id AS userId,
>                i.instance_id AS instanceId,
>                v.requirement_id AS requirementId,
>                v.criteria_id AS criteriaId,
>                v.value AS voteValue
>            FROM vote v, user_weight uw, instance i
>            WHERE i.instance_id = 1
>            AND i.instance_id = uw.instance_id
>            AND i.instance_id = v.instance_id
>            AND uw.user_id = v.user_id
>
>     Returns
>     +------------+--------+--------+------------+---------------+------------+-----------+
>
>     | databaseId | weight | userId | instanceId | requirementId |
>     criteriaId
>     | voteValue |
>     +------------+--------+--------+------------+---------------+------------+-----------+
>     |          3 |      5 |      3 |          1 |             1
>     |          1
>     |         9 |
>     |          3 |      5 |      3 |          1 |             2
>     |          1
>     |         3 |
>     |          3 |      5 |      3 |          1 |             3
>     |          1
>     |         1 |
>     |          3 |      5 |      3 |          1 |             4
>     |          1
>     |         4 |
>     |          4 |      9 |      4 |          1 |             1
>     |          1
>     |         9 |
>     |          4 |      9 |      4 |          1 |             2
>     |          1
>     |         3 |
>     +------------+--------+--------+------------+---------------+------------+-----------+
>
>
>
>     --------------------SQL MAP---------------------------------
>     <?xml version="1.0" encoding="UTF-8" ?>
>
>     <!DOCTYPE sqlMap
>     PUBLIC "-//iBATIS.com//DTD SQL Map 2.0//EN"
>     "http://www.ibatis.com/dtd/sql-map-2.dtd">
>
>     <sqlMap namespace="Stakeholder">
>
>        <resultMap id="stakeMap" class="
>     rp.object.baseImpl.BasicStakeholder"
>     groupBy="requirementId">
>            <result property="databaseId" column="databaseId"/>
>            <result property="weight" column="weight"/>
>            <result property="votes" resultMap="Stakeholder.votes"/>
>        </resultMap>
>
>        <resultMap id="votes" class="rp.object.baseImpl.BasicVote ">
>            <result property="userId" column="userId"/>
>            <result property="instanceId" column="instanceId"/>
>            <result property="requirementId" column="requirementId"/>
>            <result property="criteriaId" column="criteriaId"/>
>            <result property="voteValue" column="voteValue"/>
>        </resultMap>
>
>
>        <select id="getStakeholders" resultMap="stakeMap">
>            SELECT v.user_id AS databaseId,
>                uw.weight AS weight,
>                 v.user_id AS userId,
>                i.instance_id AS instanceId,
>                v.requirement_id AS requirementId,
>                v.criteria_id AS criteriaId,
>                v.value AS voteValue
>            FROM vote v, user_weight uw, instance i
>            WHERE i.instance_id = #value#
>            AND i.instance_id = uw.instance_id
>            AND i.instance_id = v.instance_id
>            AND uw.user_id = v.user_id
>        </select>
>
>     </sqlMap>
>
>
>


Reply via email to