Различия драйверов Cassandra 3.x к 4.x - PullRequest
2 голосов
/ 27 марта 2020

Может кто-нибудь сказать мне, как реплицировать эту старую аннотацию из серии драйверов Datastax 3.x в новую серию 4.x:

@Table(
        name = "mytable",
        readConsistency = "LOCAL_ONE",
        writeConsistency = "LOCAL_QUORUM")

Я получил имя: @CqlName ("mytable "), только не консистенции.

Мы используем картографы исключительно в нашем коде - они быстрые, и в драйвере 3.x для вас было сделано много чего интересного. В 4.х не так много и это расстраивает. Есть некоторые вещи, на которые мы полагаемся, что я просто не могу понять - как это.

Также (другой вопрос, но я задам здесь). Могу ли я установить профиль для сеанса? С этим тоже борюсь.

1 Ответ

3 голосов
/ 27 марта 2020

Как указано в руководстве по обновлению драйвера :

понятия "картограф" и "аксессор" объединены в один компонент "DAO", который обрабатывает оба предопределенных Шаблоны CRUD и пользовательские запросы.

В вашем случае вы переходите с @Table на @Entity, например:

@Entity
@CqlName("mytable")
class MyPojoClass {

}

И затем вы определяете Dao класс , где вы определяете отдельные операции, например, вставка / удаление / выбор:

@Dao
public interface ProductDao {

  @Select
  MyPojoClass findBySomething();

  @Insert
  void save(MyPojoClass cls);

  @Delete
  void delete(MyPojoClass cls);
}

эти операции могут быть аннотированы с помощью @StatementAttributes аннотации, которая имеет consistencyLevel , executionProfileName и многие другие атрибуты.

PS Для меня одно из больших улучшений в новом Mapper заключается в том, что вы можете использовать один и тот же класс Entity с несколькими пространствами клавиш & таблицы внутри одного сеанса ...

...