Я готовлю запрос на кассандру в java, используя com.datastax.driver.core.PreparedStatement
Моя схема очень проста - key
типа text
и value
типа set<text>
, Я готовлю заявление следующим образом:
mySession.prepare("UPDATE a.table USING TTL :ttl SET value = value + {:value} WHERE key = :key ");
[Это сделано для того, чтобы добавить значение в набор и иметь отдельное ttl
для каждого значения]
Я получил эту ошибку при оценке вышеприведенного утверждения:
com.datastax.driver.core.exceptions.InvalidQueryException: Invalid set literal for value: bind variables are not supported inside collection literals
at com.datastax.driver.core.exceptions.InvalidQueryException.copy(InvalidQueryException.java:49)
at com.datastax.driver.core.DriverThrowables.propagateCause(DriverThrowables.java:35)
at com.datastax.driver.core.AbstractSession.prepare(AbstractSession.java:86)
Как мне преодолеть это исключение и связать мою переменную с коллекцией типа set<text>
. В качестве альтернативы, есть ли лучший / предпочтительный способ достижения моей цели динамического (с разными TTL) добавления элементов в set
в Кассандре из java?