我需要在已经定义并填充了表的旧旧数据库上使用SpringBoot。 我不知道是否有可能将@Entity映射到现有表。 我尝试使用
@Entity
public class MyTable {...}
但是每次我启动SpringBoot应用程序时,表都会被销毁并重新创建为空... 我试图查看Hibernate Entity注释文档,但没有发现任何有用的东西。我已经看过一些工具,但是我还是希望能很快地手动完成。
我什至不知道我打算做什么,第一次使用Hibernate。
答案 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