现有数据库表的SpringBoot Hibernate实体映射

时间:2019-03-21 15:59:04

标签: hibernate spring-boot

我需要在已经定义并填充了表的旧旧数据库上使用SpringBoot。 我不知道是否有可能将@Entity映射到现有表。 我尝试使用

@Entity
 public class MyTable {...}

但是每次我启动SpringBoot应用程序时,表都会被销毁并重新创建为空... 我试图查看Hibernate Entity注释文档,但没有发现任何有用的东西。我已经看过一些工具,但是我还是希望能很快地手动完成。

我什至不知道我打算做什么,第一次使用Hibernate。

3 个答案:

答案 0 :(得分:0)

哦,我的application.properties中有spring.jpa.hibernate.ddl-auto = create ....

答案 1 :(得分:0)

我想您某种程度上正在使用springboot-data-jpa,所以您应该知道的是:

  

您可以显式设置 spring.jpa.hibernate.ddl-auto 和标准   休眠属性值是无,验证,更新,创建和   创建拖放。 Spring Boot根据以下内容为您选择一个默认值   是否认为您的数据库是嵌入式的。默认为   如果未检测到模式管理器或全部未检测到模式管理器,则创建   其他情况。通过查看   连接类型。嵌入了hsqldb,h2和derby,其他是   不。从内存数据库切换到“真实”数据库时要小心   您不对表的存在做出假设,并且   新平台中的数据。您要么必须显式设置ddl-auto   或使用其他机制之一来初始化数据库。

因此请尝试通过在application.properties中设置spring.jpa.hibernate.ddl-auto = none来禁用DDL的创建

答案 2 :(得分:0)

因为它已经包含数据,所以我建议您设置spring.jpa.hibernate.ddl-auto = update,这样在重新启动项目时它不会删除任何内容。 您还可以添加下一个属性以获取有关其实际执行内容的更多信息: spring.jpa.show-sql = true spring.jpa.properties.hibernate.format_sql = true

此配置已添加到application.properties文件中

在这里您可以查找更多信息: how does exactly spring.jpa.hibernate.ddl-auto property works in Spring? https://www.baeldung.com/sql-logging-spring-boot