Hi,

 

It seems you need to replace 'column="COMPANY_ID=COID"' with
'column="COMPANY_ID"', and 'WHERE COMPANY_ID = #COID#' with 'WHERE
COMPANY_ID = #Value#'. This is how we usually do this.

 

Good luck!

 

 

 

Regards,

 

Kamiel Wanrooij

EveryWeb Solutions 

 

 

From: Benckert, Joe [mailto:[EMAIL PROTECTED] 
Sent: Wednesday, March 26, 2008 12:44 PM
To: [email protected]
Subject: mapping problem

 

Hi, I'm trying to get my feet wet using IBatis.  I'm attempting to
follow the examples I'm seeing in the documentation but I must have my
mapping setup wrong.  I'm simply trying to load a list of Benefits under
a parent object by passing a parameter into the select statement.
However, I keep getting the error below.  Any advice

 

 

Here is my map

 

<?xml version="1.0" encoding="utf-8" ?>

<sqlMap

            namespace="PlanPopulation"

            xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance";

            xmlns="http://ibatis.apache.org/mapping"; >

 

            <alias>

                        <typeAlias alias="PlanPopulation"
type="Trion.Entities.PlanPopulation, Trion.Entities" />

                        <typeAlias alias="Benefit"
type="Trion.Entities.Benefit, Trion.Entities"/>

            </alias>

 

            <resultMaps>

                        <resultMap id="SelectResult"
class="PlanPopulation">

                                    <result property="CompanyID"
column="COMPANY_ID" />

                                    <result property="PlanYearID"
column="PLAN_YEAR_ID" />

                                    <result property="StartDate"
column="MASTER_PLAN_START_DATE" />

                                    <result property="EndDate"
column="MASTER_PLAN_END_DATE"/>

                                    <result property="Benefits"
column="COMPANY_ID=COID" select="SelectBenefits" />

                        </resultMap>

 

                        <resultMap id="BenefitResult" class="Benefit">

                                    <result property="PlanType"
column="PP_PLAN_TYPE"/>

                                    <result property="Description"
column="PLAN_DESCRIPTION"/>

                        </resultMap>

            </resultMaps>

 

            <statements>

 

                        <select id="Select" parameterClass="int"
resultMap="SelectResult">

                                    select

                                    COMPANY_ID,

                                    PLAN_YEAR_ID,

                                    MASTER_PLAN_START_DATE,

                                    MASTER_PLAN_END_DATE

                                    FROM EOL_MASTER_PLAN

                                    WHERE COMPANY_ID = #CompanyID#

                                    AND PLAN_YEAR_ID = #PlanYearID#

                        </select>

                        <select id="SelectBenefits"
resultMap="BenefitResult" >

                                    Select PP_PLAN_TYPE,
PLAN_DESCRIPTION FROM EOL_PLAN_TYPE

                                    WHERE COMPANY_ID = #COID#

                        </select>

                        

            </statements>

</sqlMap>

 

And the error

 

TestCase 'IBatisUnitTests.GeneralTests.GetPlanPopulation' failed:
System.IndexOutOfRangeException : COID

            at
System.Data.ProviderBase.FieldNameLookup.GetOrdinal(String fieldName)

            at System.Data.SqlClient.SqlDataReader.GetOrdinal(String
name)

            at
IBatisNet.DataMapper.Commands.DataReaderDecorator.System.Data.IDataRecor
d.GetOrdinal(String name)

            at
IBatisNet.DataMapper.MappedStatements.PropertyStrategy.SelectStrategy.Se
t(RequestScope request, IResultMap resultMap, ResultProperty mapping,
Object& target, IDataReader reader, Object selectKeys)

            at
IBatisNet.DataMapper.MappedStatements.ResultStrategy.ResultMapStrategy.P
rocess(RequestScope request, IDataReader& reader, Object resultObject)

            at
IBatisNet.DataMapper.MappedStatements.ResultStrategy.MapStrategy.Process
(RequestScope request, IDataReader& reader, Object resultObject)

            at
IBatisNet.DataMapper.MappedStatements.MappedStatement.RunQueryForObject[
T](RequestScope request, ISqlMapSession session, Object parameterObject,
T resultObject)

            at
IBatisNet.DataMapper.MappedStatements.MappedStatement.ExecuteQueryForObj
ect[T](ISqlMapSession session, Object parameterObject, T resultObject)

            at
IBatisNet.DataMapper.MappedStatements.MappedStatement.ExecuteQueryForObj
ect[T](ISqlMapSession session, Object parameterObject)

            at IBatisNet.DataMapper.SqlMapper.QueryForObject[T](String
statementName, Object parameterObject)

 

Joseph Benckert
Trion(tm)
2300 Renaissance Blvd. 
King of Prussia, PA 19406
P: 610-945-1166
F: 610-945-1166
E: [EMAIL PROTECTED]
W: www.trion.com <http://www.trion.com/>  

 

 

 
Confidentiality Notice: This e-mail transmission may contain
confidential or legally privileged information that is intended only for
the individual or entity named in the e-mail address.
If you are not the intended recipient, you are hereby notified that any
disclosure, copying, distribution, or reliance upon the contents of this
e-mail is strictly prohibited. If you have received this e-mail
transmission in error, please reply to the sender, so that arrangements
can be made for proper delivery, and then please delete the message from
your inbox.

Reply via email to