mischa.z wrote:
Hey,
I can't seem to find the correct mapping for the postgres ARRAY type in
the ibatis docs (do I have to write my own handler?). Can anyone give me
a hint. Thanks.
-Mischa
I guess I found a solution (although I'm not sure if this is the best
way to do it).
For dealing with postgres' boolean[] type I wrote the following handler
for mapping it to a Java type boolean[]:
public class PGBooleanArrayTypeMapper
implements TypeHandlerCallback
{
public void setParameter(
ParameterSetter setter,
Object parameter)
throws SQLException
{
throw new UnsupportedOperationException("Not implemented yet");
}
public Object getResult(
ResultGetter getter)
throws SQLException
{
ResultSet dbResult = getter.getArray().getResultSet();
boolean[] result = new boolean[255]; // expecting fix num of elements
while (dbResult.next())
{
String element = dbResult.getString(2);
result[dbResult.getInt(1)-1] = element.equals("YES") ? true :
false;
}
return result;
}
public Object valueOf(
String s)
{
throw new UnsupportedOperationException("Not implemented yet");
}
}
The mapping for the sqlmap looks like:
<resultMap id="get-codes-result" class="test.Codes">
<result property="codes" column="code" jdbcType="ARRAY"
javaType="java.sql.Array" typeHandler="test.PGBooleanArrayTypeMapper"/>
</resultMap>
-Mischa