如果表不存在则创建表

时间:2016-05-20 20:04:48

标签: java cassandra spring-data spring-data-cassandra

目前有一些架构操作允许您在每次启动时重新创建表,但显然删除它们意味着您丢失了该表的所有行。 在CQL中,您可以进行类似

的查询
    CREATE TABLE IF NOT EXISTS keyspace.tablename(....)

但我找不到任何方法可以通过spring-data-casssandra实现类似的结果,这可以让我第一次启动我的应用程序而不会改变任何内容。

如果所述表尚不存在,是否有任何方法可以使用@Table创建在POJO中定义的表?

1 个答案:

答案 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初始化脚本。