You are viewing a plain text version of this content. The canonical link for it is here.
Posted to user-cs@ibatis.apache.org by Troy Gaines <tj...@gmail.com> on 2008/02/23 23:07:08 UTC
ResultMap
I am trying to define a custom type handler for a State object using 1.6.1.
I keep on getting the following error:
IBatisNet.Common.Exceptions.ConfigurationException : Error registering
TypeHandler class "StateType" for handling .Net type "state" and dbType
"varchar". Cause: Could not load type from string value 'state'.
----> System.TypeLoadException : Could not load type from string value
'state'.
I have posted the SqlMapConfig.xml file and the actual mapping file. I have
highlighted the relevant statements. I'm sure they are in the right
assembly as I have verified this though Reflector and through code. Does
anyone know why I'm getting this message? Thanks in advance!
*<!-- SQL Map Config (SqlMapConfig.xml) -->*
<?xml version="1.0" encoding="utf-8"?>
<sqlMapConfig
xmlns="http://ibatis.apache.org/dataMapper"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
<settings>
<setting useStatementNamespaces="true"/>
<setting validateSqlMap="true"/>
<setting cacheModelsEnabled="true"/>
</settings>
<providers resource="providers.config"/>
<database>
<provider name="OleDb2.0"/>
<dataSource name="jobTrackDataSource" connectionString="Provider=
Microsoft.Jet.OLEDB.4.0;Data Source=JobTrack.mdb"/>
</database>
<alias>
<typeAlias alias="PhoneType" type="
TGaines.Model.Dao.Ibatis.PhoneTypeHandlerCallback,TGaines.Model"/>
* <typeAlias alias="StateType" type="
TGaines.Model.Dao.Ibatis.StateTypeHandlerCallback,TGaines.Model"/>*
</alias>
<typeHandlers>
*<typeHandler type="state" dbType="varchar" callback="StateType"/>
* <typeHandler type="phone" dbType="varchar" callback="PhoneType"/>
</typeHandlers>
<sqlMaps>
<sqlMap resource="Customer.xml"/>
</sqlMaps>
</sqlMapConfig>
*<!-- SQL Map Xml (Customer.xml) -->*
<?xml version="1.0" encoding="UTF-8" ?>
<sqlMap namespace="Customer"
xmlns="http://ibatis.apache.org/mapping"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" >
<alias>
<typeAlias alias="Customer" type="TGaines.JobTrack.Model.Customer,
TGaines.JobTrack" />
</alias>
<resultMaps>
<resultMap id="CustomerResult" class="Customer">
<result property="Id" column="ID" type="int" dbType="Int"/>
<result property="LastName" column="LAST_NAME" type="string"
dbType="varchar"/>
<result property="FirstName" column="FIRST_NAME" type="string"
dbType="varchar"/>
<result property="MiddleName" column="MIDDLE_NAME" type="string"
dbType="varchar"/>
<result property="BirthDate" column="BIRTH_DATE" type="System.DateTime"
dbType="dateTime"/>
<result property="Email" column="EMAIL" type="string"
dbType="varchar"/>
<result property="City" column="CITY" type="string" dbType="varchar"/>
<result property="AddressLine" column="ADDRESS" type="string"
dbType="varchar"/>
<result property="Zip" column="ZIP_CODE" type="string"
dbType="varchar"/>
*<result property="State" column="STATE" dbType="varchar"
type="state"/>*
<result property="WorkPhone" column="WORK_PHONE" type="phone"/>
<result property="HomePhone" column="HOME_PHONE" type="phone"/>
<result property="CellPhone" column="CELL_PHONE" type="phone"/>
</resultMap>
</resultMaps>
<statements>
<select id="SelectCustomer" parameterClass="string"
resultClass="Customer">
SELECT ID AS Id,LAST_NAME AS LastName,FIRST_NAME AS
FirstName,MIDDLE_NAME AS MiddleName,BIRTH_DATE AS BirthDate,EMAIL AS
Email,CITY AS City,ADDRESS AS AddressLine,ZIP_CODE AS Zip,*STATE as
State*,WORK_PHONE
as WorkPhone,HOME_PHONE as HomePhone,CELL_PHONE as CellPhone
FROM CUSTOMER
<dynamic prepend="WHERE">
<isParameterPresent>
ID = #value#
</isParameterPresent>
</dynamic>
</select>
<insert id="InsertCustomer" parameterClass="Customer">
INSERT INTO CUSTOMER
(LAST_NAME,FIRST_NAME,MIDDLE_NAME,BIRTH_DATE,EMAIL,CITY,STATE,ADDRESS,ZIP_CODE,WORK_PHONE,HOME_PHONE,CELL_PHONE)
VALUES(#LastName#,#FirstName#,#MiddleName#,#BirthDate#,#Email#,#City#,#State.Abbreviation#,#AddressLine#,#Zip#,#WorkPhone.FormattedNumber#,#HomePhone.FormattedNumber#,#CellPhone.FormattedNumber#)
<selectKey resultClass="int" type="post" property="Id">
SELECT @@IDENTITY
</selectKey>
</insert>
<update id="UpdateCustomer" parameterClass="Customer">
UPDATE CUSTOMER
SET
LAST_NAME=#LastName#,FIRST_NAME=#FirstName#,MIDDLE_NAME=#MiddleName#,BIRTH_DATE=#BirthDate#,EMAIL=#Email#,CITY=#City#,STATE=#State.Abbreviation#,ADDRESS=#AddressLine#,ZIP_CODE=#Zip#,WORK_PHONE=#WorkPhone.FormattedNumber#,HOME_PHONE=#HomePhone.FormattedNumber#,CELL_PHONE=#CellPhone.FormattedNumber#
WHERE ID = #Id#
</update>
<delete id="DeleteCustomer" parameterClass="string">
DELETE FROM CUSTOMER
WHERE ID = #value#
</delete>
</statements>
</sqlMap>
RE: ResultMap
Posted by Dick Harper <dh...@pioneersystems.net>.
I keep removing my email address from this group but I start getting emails
after a few weeks. Can you check on this for me?
Thanks
From: Gilles Bayon [mailto:ibatis.net@gmail.com]
Sent: Sunday, February 24, 2008 5:14 AM
To: user-cs@ibatis.apache.org
Subject: Re: ResultMap
A typeHandler is a relation between a dotnet primitive type (int,
string....) and a dbtype so your config you be somelike
<typeHandler type="string" dbType="varchar" callback="StateType"/>
--
Cheers,
Gilles
Re: ResultMap
Posted by Gilles Bayon <ib...@gmail.com>.
A typeHandler is a relation between a dotnet primitive type (int,
string....) and a dbtype so your config you be somelike
*<typeHandler type="string" dbType="varchar" callback="StateType"/>*
--
Cheers,
Gilles