Spring NamedParameterJdbcTemplate + массив целых чисел + Sybase - PullRequest
1 голос
/ 04 августа 2010

Оооо .. Мы нашли ошибку, и стек выглядит примерно так

com.sybase.jdbc2.jdbc.SybSQLException: Class [java.lang.Integer not found. Check and make sure that the class has been installed, and an entry exists in Sysxtypes.

Тогда я подумал, аааа, мне просто нужно конвертировать их в примитивы.1006 * А затем подключил идентификаторы в запросе

return namedParameterJdbcTemplate.query("select distinct id from Coffee where id in ( :ids )", Collections.singletonMap("ids", ids),
            new ParameterizedRowMapper<Integer>(){
            public Integer mapRow(ResultSet rs, int rowNum) throws SQLException {
                return rs.getInt("id");
            }
        });

ОК.Тогда я получил это;

com.sybase.jdbc2.jdbc.SybSQLException: Class [I not found. Check and make sure that the class has been installed, and an entry exists in Sysxtypes.

У меня никогда не было проблем с использованием ни Integer, ни int, когда я использую шаблоны spring jdbc вместе с sybase.Есть идеи?

1 Ответ

0 голосов
/ 07 апреля 2011

вместо преобразования в примитивы вам нужно сделать его списком, а не массивом

вместо этого

int [] ids = ArrayUtils.toPrimitive (set.toArray (set.toArray (new Integer [set.size ()]));

вам нужно будет сделать

Arrays.asList (ids)

...