Spring Boot 和 Hibernate 创建架构但不创建表

问题描述 投票:0回答:2

我正在使用 hibernate 自动生成数据库架构和表。 生成了架构,但没有生成表。

如何生成表格?

application.properties 文件:

#jdbc
spring.jpa.hibernate.ddl-auto=create
jdbc.driverClassName=com.mysql.jdbc.Driver
jdbc.url = jdbc:mysql://127.0.0.1:3306/tutor?createDatabaseIfNotExist=true&useUnicode=yes&characterEncoding=UTF-8
jdbc.user= root
jdbc.password =

# hibernate.X
hibernate.dialect=org.hibernate.dialect.MySQL5DBDialect
hibernate.show_sql=false
hibernate.hbm2ddl.auto=validate
#hibernate.hbm2ddl.auto=create-drop
pool.size=2

Account.java 文件:

@Entity
@Table
public class Account implements Serializable {
    private static final long serialVersionUID = 1L;

    @Id
    @GeneratedValue(strategy = GenerationType.AUTO)
    @Column
    private Integer id;

    @Column
    private String username;

    @Column
    private String password;

    public Integer getId() {
        return id;
    }

    public String getUsername() {
        return username;
    }

提前致谢。

hibernate spring-boot
2个回答
0
投票

这个属性对我有用:

spring.jpa.hibernate.ddl-auto=create

通过以下内容,我将架构生成到项目根目录下的文件中:

spring.jpa.properties.javax.persistence.schema-generation.create-source=metadata
spring.jpa.properties.javax.persistence.schema-generation.scripts.action=create
spring.jpa.properties.javax.persistence.schema-generation.scripts.create-target=create.sql   

SQL 服务器监控显示应用程序没有查询,因此必须存在配置错误或某些开关。对我来说,根本原因是 yaml 中的属性名称错误。


0
投票

来自 https://stackoverflow.com/a/68006677/8297550

检查应用程序的主入口点是否位于 com.xxx.xxx 包中。这意味着组件和实体扫描将在 com.xxx.xxx 及其任何子包中找到类。如果您的实体位于 com.xxx.yyy 中,则此扫描未涵盖该实体。

您可以通过将 com.xxx.yyy 包重命名为 com.xxx.xxx.yyy 来解决问题。或者,您可以使用 @EntityScan 指定要扫描实体的包。

© www.soinside.com 2019 - 2024. All rights reserved.