我有一個自定義的typeHandler
一個<resultMap>
的結果屬性之一:MyBatis的自定義類型處理器
<resultMap id="foo" type="hashmap">
...
<result property="SERVICES_XML" javaType="string" jdbcType="CLOB" typeHandler="com.foo.bar.OracleClobTypeHandler" />
...
</resultMap>
無論哪個屬性我我的處理程序連接到(我的意思是,這是不特定於CLOB的問題,也嘗試了VARCHAR
),當我從數據庫獲取結果時,處理程序不會被調用。
我在自定義處理程序的所有方法設置斷點:執行
public class OracleClobTypeHandler implements TypeHandler<String> {
@Override
public void setParameter(PreparedStatement ps, int i, String parameter, JdbcType jdbcType) throws SQLException {
log.debug("setParameter called"); <================ BREAKPOINT HERE
}
@Override
public String getResult(ResultSet rs, String columnName)
throws SQLException {
log.debug("getResult 2 called"); <================ BREAKPOINT HERE
return "";
}
@Override
public String getResult(ResultSet rs, int columnIndex)
throws SQLException {
log.debug("getResult 2 called"); <================ BREAKPOINT HERE
return "";
}
@Override
public String getResult(CallableStatement cs, int columnIndex)
throws SQLException {
log.debug("getResult 3 called"); <================ BREAKPOINT HERE
return "";
}
}
顯然沒有上面的方法。
我試過把<typeHandler javaType="java.lang.String" jdbcType="CLOB" handler="com.foo.bar.OracleClobTypeHandler"/>
放在myBatis <configuration>
中,但是這也不起作用。
也沒有做任何其他事情,包括延伸TypeHandler<Object>
等。
我在做什麼錯?