springboot jpa不自动生成表

我的配置文件是yaml文件

在确保jpa的配置是正确的情况下(这是我的配置)

yaml文件配置:

jpa:
  hibernate:
    ddl-auto: update
  show-sql: true

application.properties配置:

spring.jpa.properties.hibernate.hbm2ddl.auto=update

hibernate.show_sql=true

一个是自动建表规则,一个是是否打印sql

注意:application.properties下后两个配置,spring.jpa.properties.hibernate.hbm2ddl.auto=update而不是hibernate.hbm2ddl.auto=update,使用了Jpa所以键名称需要有相应调整,否则不会自动建表

spring.jpa.properties.hibernate.hbm2ddl.auto有几种配置:

  • create:每次加载Hibernate时都会删除上一次生成的表,然后重新生成新表,即使两次没有任何修改也会这样执行,这就导致每次启动都是一个新的数据库,也是导致数据丢失的重要原因。

  • create-drop:每次加载Hibernate时都会生成表,但当SessionFactory关闭时,所生成的表将自动删除。

  • update最常用的属性值,第一次加载Hibernate时创建数据表(前提是需要先有数据库),以后加载HIbernate时只会根据model更新,即使model已经删除了某些属性,数据表也不会随之删除字段。

  • validate:每次加载Hibernate时都会验证数据表结构,只会和已经存在的数据表进行比较,根据model修改表结构,但不会创建新表。

如果还没有自动创建表

查看一下启动文件,按照这样配置

@EnableAutoConfiguration

@SpringBootApplication(exclude = {DataSourceAutoConfiguration.class,HibernateJpaAutoConfiguration.class})

@EnableAutoConfiguration
@SpringBootApplication(exclude = {DataSourceAutoConfiguration.class,HibernateJpaAutoConfiguration.class})
public class ServoApplication {

	public static void main(String[] args) {
		SpringApplication.run(BdservoApplication.class, args);
	}
}

我是没有加 @EnableAutoConfiguration 跟 ,HibernateJpaAutoConfiguration.class ,所以才没有自动生成表

你可能感兴趣的:(springboot)