实际上,在深入研究位于 中的源代码后spring-data-cassandra:3.1.9
,您可以检查实现:
org.springframework.data.cassandra.config.SessionFactoryFactoryBean#performSchemaAction
实施如下:
protected void performSchemaAction() throws Exception {
boolean create = false;
boolean drop = DEFAULT_DROP_TABLES;
boolean dropUnused = DEFAULT_DROP_UNUSED_TABLES;
boolean ifNotExists = DEFAULT_CREATE_IF_NOT_EXISTS;
switch (this.schemaAction) {
case RECREATE_DROP_UNUSED:
dropUnused = true;
case RECREATE:
drop = true;
case CREATE_IF_NOT_EXISTS:
ifNotExists = SchemaAction.CREATE_IF_NOT_EXISTS.equals(this.schemaAction);
case CREATE:
create = true;
case NONE:
default:
// do nothing
}
if (create) {
createTables(drop, dropUnused, ifNotExists);
}
}
这意味着您必须分配CREATE
到schemaAction
是否从未创建过表。并且CREATE_IF_NOT_EXISTS
剂量不起作用。
更多信息请在此处查看:为什么带有 `spring-data-cassandra` 的`spring-data-jpa` 不会自动创建 cassandra 表?