目前有一些架构操作允许您在每次启动时重新创建表,但显然删除它们意味着您丢失了该表的所有行。 在CQL中,您可以进行类似
的查询 CREATE TABLE IF NOT EXISTS keyspace.tablename(....)
但我找不到任何方法可以通过spring-data-casssandra实现类似的结果,这可以让我第一次启动我的应用程序而不会改变任何内容。
如果所述表尚不存在,是否有任何方法可以使用@Table创建在POJO中定义的表?
答案 0 :(得分:2)
请参阅DATACASS-219。
我刚刚添加了对CREATE TABLE IF NOT EXISTS keyspace.tablename (..);
的支持。这将在SD Cassandra 1.5 M1(Ingals)中提供。我会考虑将1.4.2.RELEASE
支持移植到1.4。
暂时完成此操作的唯一其他方法(如果不使用包含DATACASS-219修正的1.5.0.BUILD-SNAPSHOT
)是将SchemaAction
设置为NONE
并提供您自己的原始CQL,使用setStartupScripts(:List)方法的CassandraSessionFactoryBean
初始化脚本。