... есть ли простой способ вставить Java int [] в PostgreSql с помощью iBatis? (более старый, а не новый MyBatis)Вставка int [] в PostgreSql с iBatis
Не уверен, нужен ли мне специальный обработчик или нет, но мне сложно найти образец кода, который будет иллюстрировать, что происходит.
Заранее спасибо.
пс:
с оригинальной публикации, я могу прочитать массив из БД и заполнить ИНТ [] в объекте домена. Но не может писать в БД пока :-(
так в модели предметной области есть:
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];
--- Ошибка произошла в проекте/настойчивость/sql_xml/article.xml.
--- Ошибка при применении карты параметров.
--- Проверьте обновлениеArticle-InlineParameterMap.
--- Проверьте сопоставление параметров для свойства 'crap'.
--- Причина: java.lang.NullPointerException; inested exception is com.ibatis.common.jdbc.exception.NestedSQLException:
--- Ошибка произошла в проекте/persistance/sql_xml/Article.xml.
--- Ошибка при применении карты параметров.
--- Проверьте обновлениеArticle-InlineParameterMap.
--- Проверьте сопоставление параметров для свойства 'crap'.
--- Причина: java.lang.NullPointerException
... любые подсказки относительно того, что мне не хватает? благодаря
===
... работал мой путь до 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];
--- Произошла ошибка в проекте/persistanc е/sql_xml/article.xml.
--- Ошибка при применении карты параметров.
--- Проверьте обновлениеArticle-InlineParameterMap.
--- Проверьте сопоставление параметров для свойства 'crap'.
--- Причина: java.lang.ClassCastException: java.util.ArrayList; inested exception is com.ibatis.common.jdbc.exception.NestedSQLException:
--- Ошибка произошла в проекте/persistance/sql_xml/Article.xml.
--- Ошибка при применении карты параметров.
--- Проверьте обновлениеArticle-InlineParameterMap.
--- Проверьте сопоставление параметров для свойства 'crap'.
--- Причина: java.lang.ClassCastException: java.util.ArrayList
... У меня было это сегодня. Благодаря
ли Вы хотите вставить 'ИНТ []' в одной строке или mupliple row? – Nishant
одна строка, тип col целое [] – vector