【问题标题】:Disable mysql automatic table creation from hibernate从休眠中禁用mysql自动创建表
【发布时间】:2021-04-20 15:07:17
【问题描述】:

我正在使用 mySql 和 Hibernate 链接创建一个简单的 spring-boot 应用程序。 当我调用一些标准的 JpaRepository 方法(例如 findAll() )时,Hibernate 会自动在我的模式中创建一个新表,因此,我的方法返回空列表。 我已尝试更改我的 application.property,但问题仍然存在。

application.properties:

> spring.datasource.url=jdbc:mysql://localhost:3306/carrello?&serverTimezone=UTC
> spring.datasource.username=root spring.datasource.password=root
> spring.jpa.show-sql=true hibernate.hbm2ddl.auto=none

实体:

>     @Entity
>     @Table(name = "ARTICOLI", schema="carrello")
>     public class Articolo {
>       
>       @Id
>       @Column(name="ID_ARTICOLO")
>       private int idArticolo;
>       
>       @Column(name="NOME_ARTICOLO")
>       private String nomeArticolo;
>       
>       @Column(name="DESCRIZIONE_ARTICOLO")
>       private String descrizioneArticolo;
>       
>       @Column(name="CATEGORIA_ARTICOLO")
>       private String categoriaArticolo;
>       
>       @Column(name="PREZZO_ARTICOLO")
>       private int prezzoArticolo;
>     
>     getters /setters

SQL:

>       create table carrello.ARTICOLI (
>       ID_ARTICOLO INT,
>       NOME_ARTICOLO varchar(70),
>       CATEGORIA_ARTICOLO varchar(50),
>       DESCRIZIONE_ARTICOLO varchar (100),
>       PREZZO_ARTICOLO int,
>       primary key(ID_ARTICOLO)
>     );

如何禁用自动创建表?

【问题讨论】:

    标签: mysql spring-boot jpa


    【解决方案1】:

    由于你使用 Spring Boot,它通过 Spring Data JPA 抽象了 Hibernate 部分。因此您可以尝试spring.jpa.hibernate.ddl-auto=none 来防止“自动创建表”。在引擎盖下,它会指示 hibernate 采取适当的行动。

    Source

    【讨论】:

    • 我试过了,但问题仍然存在。我还删除了由 Hibernate 创建的表,当我尝试启动我的端点时,编译器返回“java.sql.SQLSyntaxErrorException:表'自动创建的表'不存在”。我的 application.properties 在路径“src/main/resources”上。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2015-04-05
    • 2016-09-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多