|
I found the answer (just by trial and
error no documentation per se). Can you tell me if there is a
easier/better way? I created a custom type handler and used
it as follows: <resultMap id="contacts" class="qcom.cas.mysourcej.poc.model.Contact"> <result property="name" column="contact_name"/> <result property="primaryContact" column="primary_contact"
typeHandler="qcom.cas.commons.ibatis.typehandler.StringBooleanTypeHandler"
/> </resultMap> package
qcom.cas.commons.ibatis.typehandler; import java.sql.CallableStatement; import java.sql.PreparedStatement; import java.sql.ResultSet; import java.sql.SQLException; import
com.ibatis.sqlmap.engine.type.TypeHandler; public class StringBooleanTypeHandler
implements TypeHandler { public
void setParameter(PreparedStatement ps, int position, Object value, String
jdbcType) throws SQLException { Boolean
bValue = (Boolean) value; ps.setString(position,
bValue.booleanValue() ? "Y" : "N"); } public
Object getResult(ResultSet rs, String name) throws SQLException { return
valueOf(rs.getString(name)); } public
Object getResult(ResultSet rs, int position) throws SQLException { return
valueOf(rs.getString(position)); } public
Object getResult(CallableStatement cs, int position) throws
SQLException { return
valueOf(cs.getString(position)); } public
Object valueOf(String value) { if
(value.equals("Y")) { return
Boolean.TRUE; }
else { return
Boolean.FALSE; } } public
boolean equals(Object value1, String value2) { return
valueOf(value2).equals(value1); } } Can you tell me if there is a
easier/better way? From: Rick
[mailto:[EMAIL PROTECTED] I have a SQL map as follows: <resultMap id="contacts" class="qcom.cas.mysourcej.poc.model.Contact">
<result property="name" column="contact_name"/>
<result property="primaryContact" column="primary_contact" /> </resultMap> The class Contact has a primaryContact field is boolean The result set is from a column that is equal to
‘Y’ or ‘N’ in the database. Is there a way to map a boolean property (primitive) to a
VARCHAR(1) NOT NULL column (that has either a ‘Y’ or a
‘N’)? This is a legacy database and there is no way I can change
the table. I could change the query. BTW I am new to iBatis, and I got it talking to a legacy db.
I also setup relationships fairly easily. I did notice the typeHandler attribute of
resultMap but this is not documented in the dtd or user documents. |
- RE: How do you map a Java boolean property to a VARCHAR(1) tha... Rick
- How do you map a Java boolean property to a VARCHAR(1) th... Rick
- RE: How do you map a Java boolean property to a VARCH... Rick
