首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

Spring-boot不会在h2 - JPA/Hibernate中创建表

Spring Boot是一个开源的Java开发框架,用于快速构建独立的、可执行的、生产级别的Spring应用程序。它提供了一种简化的方式来配置和部署Spring应用程序,同时集成了许多常用的开发工具和库。

h2是一个内存数据库,它是一个轻量级的、嵌入式的数据库引擎,适用于开发和测试环境。JPA(Java Persistence API)是Java EE的一种规范,用于将Java对象映射到关系数据库中。Hibernate是JPA的一个实现,它提供了对象关系映射(ORM)功能,简化了数据库操作。

在Spring Boot中使用h2和JPA/Hibernate时,默认情况下不会自动创建表。这是因为Spring Boot遵循“约定优于配置”的原则,它假设开发者已经有了数据库表的定义,并且不希望在每次应用程序启动时都重新创建表。

如果需要在h2中使用JPA/Hibernate创建表,可以通过在application.properties或application.yml配置文件中添加以下属性来实现:

代码语言:txt
复制
spring.jpa.hibernate.ddl-auto=create

这将告诉Hibernate在应用程序启动时根据实体类的定义自动创建表。请注意,这只适用于开发和测试环境,不建议在生产环境中使用。

关于h2、JPA/Hibernate和Spring Boot的更多信息,您可以参考以下链接:

页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

Spring Boot 面试题

问题二十四 JPA 和 Hibernate 有哪些区别?...简而言之 JPA 是一个规范或者接口 Hibernate 是 JPA 的一个实现 当我们使用 JPA 的时候,我们使用 javax.persistence 包中的注释和接口时,不需要使用 hibernate...我们建议使用 JPA 注释,因为哦我们没有将其绑定到 Hibernate 作为实现。后来(我知道 - 小于百分之一的几率),我们可以使用另一种 JPA 实现。...中,我们解释了如何连接一个你所选择的数据库。 问题二十七 如何不通过任何配置来选择 Hibernate 作为 JPA 的默认实现? 因为 Spring Boot 是自动配置的。...当 Spring Boot 在类路径中检测到 Hibernate 中,将会自动配置它为默认的 JPA 实现。 问题二十八 指定的数据库连接信息在哪里?它是如何知道自动连接至 H2 的?

1.4K10

Spring Boot 面试题精华

问题二十三 JPA 和 Hibernate 有哪些区别?...简而言之 JPA 是一个规范或者接口 Hibernate 是 JPA 的一个实现 当我们使用 JPA 的时候,我们使用 javax.persistence 包中的注释和接口时,不需要使用 hibernate...中,我们解释了如何连接一个你所选择的数据库。 问题二十六 如何不通过任何配置来选择 Hibernate 作为 JPA 的默认实现? 因为 Spring Boot 是自动配置的。...下面是我们添加的依赖项 spring-boot-stater-data-jpa 对于 Hibernate 和 JPA 有过渡依赖性。...当 Spring Boot 在类路径中检测到 Hibernate 中,将会自动配置它为默认的 JPA 实现。 问题二十七 指定的数据库连接信息在哪里?它是如何知道自动连接至 H2 的?

16.3K40
  • Spring Boot with Mysql

    1.建立数据库连接(database connection) 在上篇文章中我们新建了一个Spring Boot应用程序,添加了jdbc和data-jpa等starters,以及一个h2数据库依赖,这里我们将配置一个...依靠Entity类自动创建数据库和数据表,则还需要加上配置项——spring.jpa.hibernate.ddl-auto=create-drop。...PS:在生产环境中不要使用create-drop,这样会在程序启动时先删除旧的,再自动创建新的,最好使用update;还可以通过设置spring.jpa.show-sql = true来显示自动创建表的...会提供对应的SQL查询,例如,在本例中的BookRepository中可以增加findBookByIsbn(String isbn)函数,JPA会自动创建对应的SQL查询——根据isbn查询图书,这种将方法名转换为...最后,我们利用mvn spring-boot:run运行应用程序,观察下Hibernate是如何建立数据库连接,如何检测数据表是否存在以及如何自动创建表的过程。 ?

    3.6K20

    精选的Spring Boot 面试题,帮你整理好了!

    30 JPA 和 Hibernate 有哪些区别?...简而言之 JPA 是一个规范或者接口 Hibernate 是 JPA 的一个实现 当我们使用 JPA 的时候,我们使用 javax.persistence 包中的注释和接口时,不需要使用 hibernate...在 Spring Boot 项目中,当你确保下面的依赖项都在类路里面的时候,你可以加载 H2 控制台。 web 启动器 h2 jpa 数据启动器 其它的依赖项在下面: ?...中,我们解释了如何连接一个你所选择的数据库。 32 如何不通过任何配置来选择 Hibernate 作为 JPA 的默认实现? 因为 Spring Boot 是自动配置的。...当 Spring Boot 在类路径中检测到 Hibernate 中,将会自动配置它为默认的 JPA 实现。 33 我们如何连接一个像 MySQL 或者Orcale 一样的外部数据库?

    3.8K30

    面试必问的40个SpringBoot面试题!需要的拿走SpringBoot面试题【建议收藏】

    ** **29、在 Spring Initializer 中,如何改变一个项目的包名字?** **30、JPA 和 Hibernate 有哪些区别?...** **31、使用 Spring Boot 启动连接到内存数据库 H2 的 JPA 应用程序需要哪些依赖项?** **32、如何不通过任何配置来选择 Hibernate 作为 JPA 的默认实现?...30、JPA 和 Hibernate 有哪些区别?...简而言之 JPA 是一个规范或者接口 Hibernate 是 JPA 的一个实现 当我们使用 JPA 的时候,我们使用 javax.persistence 包中的注释和接口时,不需要使用 hibernate...当 Spring Boot 在类路径中检测到 Hibernate 中,将会自动配置它为默认的 JPA 实现。 33、我们如何连接一个像 MySQL 或者Orcale 一样的外部数据库?

    12.4K31

    SpringBoot ( 二 ) :web 综合开发

    =update spring.jpa.properties.hibernate.dialect=org.hibernate.dialect.MySQL5InnoDBDialect spring.jpa.show-sql...= true 其实这个hibernate.hbm2ddl.auto参数的作用主要用于:自动创建|更新|验证数据库表结构,有四个值: create: 每次加载hibernate时都会删除上一次的生成的表,...update:最常用的属性,第一次加载hibernate时根据model类会自动建立起表的结构(前提是先建立好数据库),以后加载hibernate时根据 model类自动更新表结构,即使表结构改变了但表中的行仍然存在不会删除以前的行...validate :每次加载hibernate时,验证创建数据库表结构,只会和数据库中的表进行比较,不会创建新表,但是会插入新值。...从根本上颠覆了这一过程,通过属性进行模板渲染不会引入任何新的浏览器不能识别的标签,例如JSP中的,不会在Tag内部写表达式。

    99630

    微服务架构之Spring Boot(四十四)

    30.3.3创建和删除JPA数据库 默认情况下,仅当您使用嵌入式数据库(H2,HSQL或Derby)时,才会自动创建JPA数据库。您可以使用 spring.jpa.* 属性显式配置JPA设 置。...例如,要创建和删除表,可以将以下行添加到 application.properties : spring.jpa.hibernate.ddl-auto=create-drop Hibernate自己的内部属性名称...您可以使 用 spring.jpa.properties.* (在将它们添加到实体管理器之前删除前缀)来设置它以及其他Hibernate本机属性。...以下行显示 了为Hibernate设置JPA属性的示例: spring.jpa.properties.hibernate.globally_quoted_identifiers=true 前面示例中的行将...如果您不想要此行为,则应在 application.properties 中 将 spring.jpa.open-in-view 设置为 false 。

    1.4K20

    spring.jpa.hibernate 配置和源码解析

    版本 spring-boot:3.2.2 hibernate:6.4.1.Final 配置项目 DDL模式 生成定义语句修改表结构 配置路径:spring.jpa.hibernate.ddl-auto...创建,如果已存在将报错 drop 删除 create 删除后再创建 create-drop 先删除,SessionFactory启动时创建,SessionFactory关闭时再删除 validate 仅校验...update 必要时更新 truncate 清空数据 隐式命名策略 如果没有通过@Table或者@Column等注解显式指定表名、列名,将通过隐式命名策略生成对应名称 配置路径: spring.jpa.hibernate.naming.implicit-strategy...重写了关联连接表名规则 org.hibernate.boot.model.naming.ImplicitNamingStrategyComponentPathImpl 重写了 AttributePath...获取spring.jpa.hibernate.ddl-auto配置值 if (this.ddlAuto !

    29100

    SpringBoot(二)Web整合开发

    =update spring.jpa.properties.hibernate.dialect=org.hibernate.dialect.MySQL5InnoDBDialect spring.jpa.show-sql...= true 其实这个hibernate.hbm2ddl.auto参数的作用主要用于:自动创建|更新|验证数据库表结构,有四个值: create: 每次加载hibernate时都会删除上一次的生成的表...update:最常用的属性,第一次加载hibernate时根据model类会自动建立起表的结构(前提是先建立好数据库),以后加载hibernate时根据 model类自动更新表结构,即使表结构改变了但表中的行仍然存在不会删除以前的行...validate :每次加载hibernate时,验证创建数据库表结构,只会和数据库中的表进行比较,不会创建新表,但是会插入新值。...从根本上颠覆了这一过程,通过属性进行模板渲染不会引入任何新的浏览器不能识别的标签,例如JSP中的,不会在Tag内部写表达式。

    1.3K70

    springboot(二):web综合开发

    =update spring.jpa.properties.hibernate.dialect=org.hibernate.dialect.MySQL5InnoDBDialect spring.jpa.show-sql...= true 其实这个hibernate.hbm2ddl.auto参数的作用主要用于:自动创建|更新|验证数据库表结构,有四个值: create: 每次加载hibernate时都会删除上一次的生成的表...update:最常用的属性,第一次加载hibernate时根据model类会自动建立起表的结构(前提是先建立好数据库),以后加载hibernate时根据 model类自动更新表结构,即使表结构改变了但表中的行仍然存在不会删除以前的行...validate :每次加载hibernate时,验证创建数据库表结构,只会和数据库中的表进行比较,不会创建新表,但是会插入新值。...从根本上颠覆了这一过程,通过属性进行模板渲染不会引入任何新的浏览器不能识别的标签,例如JSP中的,不会在Tag内部写表达式。

    1.4K60

    掌握Spring Boot数据库集成:用JPA和Hibernate构建高效数据交互与版本控制

    Spring Boot与JPA/Hibernate简介 JPA(Java Persistence API) 是Java的官方持久化规范,它定义了如何将Java对象与关系型数据库中的数据进行映射和交互。...强大的持久化能力:JPA通过注解或XML将Java对象持久化到关系型数据库。 透明化的数据操作:开发者只需处理对象,JPA会自动将其映射到数据库表中。 2....首先,通过在Maven的pom.xml中添加spring-boot-starter-data-jpa依赖项,就可以获得JPA和Hibernate的功能。...构建实体类与Repository  在JPA中,实体类是用来映射数据库表的Java类。每个实体类对应数据库中的一张表,类中的字段对应表中的列。...索引优化:在设计数据库表结构时,合理创建索引可以显著提升查询速度。 8. 总结 Spring Boot与JPA/Hibernate的集成,使得数据库操作变得非常高效且简洁。

    22910

    Spring Boot-web开发详解

    =update spring.jpa.properties.hibernate.dialect=org.hibernate.dialect.MySQL5InnoDBDialect spring.jpa.show-sql...= true | 其实这个 hibernate.hbm2ddl.auto 参数的作用主要用于:自动创建 | 更新 | 验证数据库表结构,有四个值: | create: 每次加载 hibernate...create-drop :每次加载 hibernate 时根据 model 类生成表,但是 sessionFactory 一关闭,表就自动删除。...update:最常用的属性,第一次加载 hibernate 时根据 model 类会自动建立起表的结构(前提是先建立好数据库),以后加载 hibernate 时根据 model 类自动更新表结构,即使表结构改变了但表中的行仍然存在不会删除以前的行...validate :每次加载 hibernate 时,验证创建数据库表结构,只会和数据库中的表进行比较,不会创建新表,但是会插入新值。

    1.6K40
    领券