当前位置: 首页 > 知识库问答 >
问题:

如何用Spring数据创建表格?

沙柏
2023-03-14

我这样创建了自己的存储库:

public interface MyRepository extends TypedIdCassandraRepository<MyEntity, String> {
}

那么问题是如何自动为此创建cassandra表呢?目前Spring注入MyRepository,它试图将实体插入到不存在的表中。

那么,有没有办法在Spring容器启动期间创建卡桑德拉表(如果它们不存在)?

P.S.如果只有config boolean属性,而没有添加xml行和创建类似BeanFactory等的东西,那将非常好:-)

共有3个答案

苏承载
2023-03-14

您还需要在AbstractCassandraConfiguration实现中覆盖getEntityBasePackages()方法。这将允许Spring找到您用@Table注释的任何类,并创建表。

@Override
public String[] getEntityBasePackages() {
    return new String[]{"com.example"};
}
司承业
2023-03-14

您可以在application.properties中使用此配置

spring.data.cassandra.schema-action=CREATE_IF_NOT_EXISTS
洪弘亮
2023-03-14

覆盖AbstractCassandraConfiguration类的getSchemaAction属性

@Configuration
@EnableCassandraRepositories(basePackages = "com.example")
public class TestConfig extends AbstractCassandraConfiguration {

    @Override
    public String getKeyspaceName() {
        return "test_config";
    }

    @Override
    public SchemaAction getSchemaAction() {
        return SchemaAction.RECREATE_DROP_UNUSED;
    }

    @Bean
    public CassandraOperations cassandraOperations() throws Exception {
        return new CassandraTemplate(session().getObject());
    }

}
 类似资料:
  • 问题:是否可以在迁移脚本中创建一个新的DB,然后连接到它?怎么做? 我的场景:我试图在我的Java项目(使用Jersey2.4+Tomcat7+PostgreSQL 9.3.1+EclipseLink的RESTful应用程序)中使用flyway来管理使用Git的不同开发人员之间的更改。我编写了我的init脚本并运行它: 而且效果很好。问题是我不能用我的脚本创建新的DB。当我在脚本中包含以下一行时:

  • 我有一个简单的问题,是否可以为MySQL或其他数据库使用spring-boot数据r2dbc自动生成表?在JPA中,我添加了spring.JPA.hhibernate。ddl-auto=更新并创建表 这是我的pom:

  • 所以基本上,我希望数组中的所有对象都是单个流的一部分,因为这就是我将要使用的客户端应用程序的设计方式。目前总共只有3个。所以在每个流中都将包含一个数组的所有对象。我知道这不是WebFlux的最佳用途。如果可以做到,这怎么能做到呢?

  • 主要内容:基本语法,在指定的数据库中创建表在创建数据库之后,接下来就要在数据库中创建数据表。所谓创建数据表,指的是在已经创建的数据库中建立新表。 创建数据表的过程是规定数据列的属性的过程,同时也是实施数据完整性(包括实体完整性、引用完整性和域完整性)约束的过程。接下来我们介绍一下创建数据表的语法形式。 基本语法 在 MySQL 中,可以使用 CREATE TABLE 语句创建表。其语法格式为: CREATE TABLE <表名> ([表定

  • 问题内容: 我正在研究一个JSF表单原型,以使用AJAX数据验证将数据插入数据库表中。这是JSF页面: 这是托管bean: 我在实施表单验证时遇到困难。我想将使用过的字符串输入,并将其检查到数据库中,该值是否已进入数据库表中。在这里,我正在调用Java方法来检查值: 如何将插入的值发送到Java方法? 最好的祝愿 问题答案: 您需要创建一个。 开球示例: 如下使用它: 请注意,您应该使用显示验证消

  • 我正在尝试创建一个spark应用程序,它对创建、读取、写入和更新MySQL数据非常有用。那么,有没有办法使用Spark创建一个MySQL表? 下面是在MySQL数据库中创建表的Scala JDBC代码。我怎样才能通过Spark做到这一点?