目前有一些模式操作可以让您在每次启动时重新创建表,但删除它们显然意味着您将丢失该表的所有行。在CQL中,您可以进行类似的查询
CREATE TABLE IF NOT EXISTS keyspace.tablename(....)
但我找不到任何方法可以用春季数据cassandra获得类似的结果,它可以让我第一次启动我的应用程序,而且不会更改任何内容。
如果POJO中定义的表不存在,是否有任何方法可以使用@table ONLY创建该表?
请参阅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
,并使用setStartupScripts(:List)方法向CassandraSessionFactoryBean
提供自己的原始CQL初始化脚本。