Используйте SimpleJdbcInsert для вставки в столбец коллекции - PullRequest
0 голосов
/ 25 ноября 2018

Я пытаюсь использовать класс org.springframework.jdbc.core.simple.SimpleJdbcInsert для вставки в таблицу Кассандры, которую я построил следующим образом:

CREATE TABLE test.profs(id text PRIMARY KEY,
accountid text,
enable boolean,
modifieddate bigint,
name text,
rules set<text>)

Когда я отправляю следующий запрос:

{
"name": "a",
"rules": [
    "s", "22", 
    "ss", 
    "sfsf"
],
"enable": true,
"accountId": "sss"
}

(он создает идентификатор, не беспокойтесь - проверено)

Но когда я пытаюсь вставить, выдает следующее исключение: PreparedStatementCallback; SQL [INSERT INTO test.profs (accountId, enable, id, modifiedDate, name, rules) VALUES(?, ?, ?, ?, ?, ?)the column index : 7 is greater than the count of bound variable markers in the CQL: 6; nested exception is java.sql.SQLRecoverableException: the column index : 7 is greater than the count of bound variable markers in the CQL: 6

Я думаю, что это как-то связано сстолбец rules, поскольку, когда я пытаюсь вставить массив из одного элемента, он успешно выполняется.

РЕДАКТИРОВАТЬ:

Я пытался использовать следующий класс:

@Data
@AllArgsConstructor
private class CollectionHolder {
    private Collection<?> collection;

    @Override
    public String toString() {
        StringBuilder list = new StringBuilder("{");

        for (Object obj : collection) {
            list.append(obj.toString());
            list.append(',');
        }

        list.delete(list.length()-1, list.length());
        list.append('}');

        return list.toString();
    }
}

И, похоже, все прошло успешно, но теперь rules вставляется как ноль..

Любая помощь?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...