views:

144

answers:

2

Hi all, is it possible to map a string field with a particular format like:

aaa,bbb,ccc,ddd

into a List having elements [aaa, bbb, ccc, ddd] using iBatis?

What I need is to have in my model something like:

public class Request{
    private List<String> fieldOne;
    public List<String> getFieldOne(){....}
    public void setFieldOne(){....}
}

even if in my table the field is a simple string. Is this possible?

Thanks Roberto

A: 

I'm not sure why you want iBatis to do it, but you could just use String.split() to do the work, and map the results.

Rulmeq
yep I know how to do that on the java-side, I just wanted to know if it would be possible to do that automatically with ibatis
Roberto
+1  A: 

You can do it through a CustomType Handler:

For example, in your mapping you define:

<result column="FIELD_ONE" property="fieldOne" jdbcType="VARCHAR" typeHandler="com.xxx.StringSplitTypeHandlerCallBack" />

and then you code your class StringSplitTypeHandlerCallBack implements TypeHandlerCallback , which would call String.split() inside the getResult() method.

UPDATE: Of course, if this conversion is only need for one field of one class, it might be more simple to define a pair of alternative setter/getters getFieldOneAsString(), setFieldOneAsString() in your class, and use property="fieldOneAsString" in your mapping

leonbloy