Как пометить запрос как идемпотентный в spring-data-cassandra?

Я перехожу с кода, использующего java-драйвер Cassandra, непосредственно на файл spring-data-cassandra. Старый код использовал com.datastax.driver.core.PreparedStatement#setIdempotent для пометки некоторых запросов как idempotent (что в некоторых случаях дает бонус к производительности/задержке).

Есть ли способ установить это свойство при работе через spring-data-cassandra или через spring-cql? Я ожидаю, что это будет вариант для аннотации @Query, или отдельная аннотация для метода запроса, или, по крайней мере, часть QueryOptions

Единственная связанная вещь, которую я нашел, это https://jira.spring.io/browse/DATACASS-403 , выглядит как org.springframework.cassandra.core.CachedPreparedStatementCreator, который используется в CassandraTemplate, не поддерживает флаг идемпотента (и даже сбрасывает этот флаг для запросов, созданных вручную). Более того, я не нашел ни одного упоминания в ветке 2.0 spring-data-cassandra на гитхабе


person Dmitriusan    schedule 31.03.2017    source источник
comment
Нет, это еще не запланировано для 2.0, потому что кеширование нарушено, и весь смысл идемпотентного запроса состоит в том, чтобы сделать его кешируемым. Пока не будут устранены проблемы с кэшированием, не будет встроенной поддержки этого флага. Когда я рассмотрел эту проблему, jira.spring.io/browse/DATACASS-291 был главным виновником (ИМХО), который блокировал использование этого флага   -  person Imran Saeed    schedule 31.03.2017
comment
Не могли бы вы вставить этот комментарий в качестве ответа, чтобы я мог отметить текущий вопрос как решенный?   -  person Dmitriusan    schedule 31.03.2017
comment
А пока, пожалуйста, реализуйте свой собственный PreparedStatementCreator (с кэшированием, если необходимо). Было бы здорово, если бы вы поделились своими мыслями об идемпотентных операторах в jira.spring.io/browse/DATACASS- 403.   -  person mp911de    schedule 31.03.2017


Ответы (1)


Нет, это еще не запланировано для 2.0, потому что кеширование не работает, и весь смысл идемпотентного запроса в том, чтобы сделать его кэшируемым.

Пока не будут устранены проблемы с кэшированием, не будет встроенной поддержки этого флага. Когда я рассмотрел эту проблему, https://jira.spring.io/browse/DATACASS-291 был главным виновником (ИМХО), который блокировал использование этого флага.

person Imran Saeed    schedule 31.03.2017