2016-05-20 2 views
0

В настоящее время существуют действия схемы, которые позволяют воссоздавать таблицы при каждом запуске, но их удаление явно означает, что вы потеряете все строки этой таблицы. В CQL вы можете сделать запрос какСоздайте таблицу, если они НЕ существуют

CREATE TABLE IF NOT EXISTS keyspace.tablename(....) 

Но я не могу найти какой-либо способ достижения аналогичного результата с пружинными данными-casssandra, тот, который позволит мне начать мое приложение в первый раз и на ничего не меняя.

Есть ли способ создать таблицу, определенную в POJO с @Table ТОЛЬКО, если указанная таблица еще не существует?

ответ

2

См. DATACASS-219.

Я недавно недавно добавил поддержку CREATE TABLE IF NOT EXISTS keyspace.tablename (..);. Это будет доступно в SD Cassandra 1.5 M1 (Ingals). Я подумаю о том, чтобы портировать это на 1.4 для 1.4.2.RELEASE.

Единственный способ для достижения этой цели в настоящее время (если не используется 1.5.0.BUILD-SNAPSHOT содержащим DATACASS-219 исправления), чтобы установить ваш SchemaAction в NONE и предоставить свои собственные сырые CQL, скрипты инициализации в CassandraSessionFactoryBean с использованием методы setStartupScripts(:List).

+0

Под каким хранилищем я могу найти версию, содержащую это исправление? Maven, похоже, не находит его в [link] (http://maven.springframework.org/snapshot/), и хотя я вижу его здесь [ссылка] (http://maven.springframework.org/snapshot/org/springframework/data/spring-data-cassandra /), он говорит, что последний раз был изменен в 06-Apr-2016. Это правильная версия? –

+0

Просто решил, что весенний ботинок меняет имя артефакта, поэтому он искал его в другом каталоге. Спасибо. –

+0

. Выполнение этой операции с моментальным снимком вызывает эту ошибку: вызов метода init не удался; Вложенное исключение - java.lang.NoClassDefFoundError: io/netty/util/Timer –