... есть ли простой способ вставить Java int [] в PostgreSql с помощью iBatis?(старый, а не новый MyBatis)
Не уверен, нужен ли мне обработчик нестандартного типа или нет, но мне трудно найти пример кода, который бы иллюстрировал происходящее.
Заранее спасибо.
ps:
с момента первоначальной публикации, я могу прочитать массив из БД и заполнить int [] в доменном объекте.Но пока не могу записать в БД: - (
, поэтому в модели предметной области есть:
int[] crap = null;
с геттерами и сеттерами, обработчик свойств cusom выглядит так:
public class ArrayTypeHandler implements TypeHandlerCallback {
public void setParameter(ParameterSetter setter, Object parameter) throws SQLException {
if( parameter == null){
setter.setNull( Types.ARRAY);
} else {
setter.setArray( (Array) Arrays.asList(parameter ) );
}
}
public Object getResult(ResultGetter getter) throws SQLException {
Array array = getter.getResultSet().getArray(getter.getColumnName());
if( !getter.getResultSet().wasNull()){
return array.getArray();
} else { return null; }
}
public Object valueOf(String string) {
throw new UnsupportedOperationException("Not supported yet.");
}
}
sqlMapConfig.xml:
<typeHandler javaType="java.sql.Array" jdbcType="ARRAY" callback="project.persistance.sqlmapdao.ArrayTypeHandler" />
При попытке обновления я получаю следующую ошибку:
org.springframework.web.util.NestedServletException: Request processing failed; nested exception is org.springframework.jdbc.UncategorizedSQLException: SqlMapClient operation; uncategorized SQLException for SQL []; SQL state [null]; error code [0];
--- Произошла ошибкав проекте / persistance / sql_xml / Article.xml.
--- Произошла ошибка при применении карты параметров.
--- Проверьте updateArticle-InlineParameterMap.
--- Проверьте отображение параметров длясвойство 'crap'.
--- Причина: java.lang.NullPointerException; вложенное исключение - com.ibatis.common.jdbc.exception.NestedSQLException:
--- Произошла ошибка в проекте / persistance / sql_xml /Article.xml.
--- Произошла ошибка при применении карты параметров.
--- Проверьте updateArticle-InlineParameterMap.
--- Проверьте отображение параметров для свойства 'crap'.
--- Причина: java.lang.NullPointerException
... любые подсказки относительно wшляпа я скучаю?спасибо
===
... прошел путь до ClassCastExceptiong: -)
, пытаясь установить правильность:
public void setParameter(ParameterSetter setter, Object parameter) throws SQLException {
int[] c = (int[]) parameter;
setter.setArray( (java.sql.Array) c );
}
... и последующее исключение:
org.springframework.web.util.NestedServletException: Request processing failed; nested exception is org.springframework.jdbc.UncategorizedSQLException: SqlMapClient operation; uncategorized SQLException for SQL []; SQL state [null]; error code [0];
--- Ошибка произошла в проекте / persistance / sql_xml / Article.xml.
--- Ошибка произошла при применении карты параметров.
--- Проверьте updateArticle-InlineParameterMap.
--- Проверьте соответствие параметров для свойства 'crap'.
--- Причина: java.lang.ClassCastException: java.util.ArrayList;Вложенное исключение - com.ibatis.common.jdbc.exception.NestedSQLException:
--- Произошла ошибка в проекте / persistance / sql_xml / Article.xml.
--- Произошла ошибка при применении карты параметров.
--- Проверьте updateArticle-InlineParameterMap.
--- Проверьте соответствие параметров для свойства 'crap'.
--- Причина: java.lang.ClassCastException: java.util.ArrayList
... у меня сегодня было все же.Спасибо