JPA 和数据库交互
Posted
技术标签:
【中文标题】JPA 和数据库交互【英文标题】:JPA and database interaction 【发布时间】:2015-07-22 15:15:17 【问题描述】:我对 Spring 和 JPA 环境很陌生。我使用repository.save(Office object)
操作编写了存储办公室信息的小代码。但是当我重新运行代码时,它显示没有这样的条目(我之前输入的)。如何使用 JPA 将信息永久存储在数据库中?
【问题讨论】:
嗯,在 JPA 中,您通过将实体与持久性单元相关联来将实体持久化到数据库中。也许您应该向我们展示一些您迄今为止尝试过的代码,这样我们就不必为您重写有关 JPA 的教程。 【参考方案1】:如果你只使用 h2 而没有任何配置(仅在 gradle/maven 中的依赖),那么 spring 将为你创建内存数据库。要更改此设置,您可以创建自己的 DataSource
Bean。如果您使用 Spring Boot,还有一种更简单的方法 - 只需在 application.properties
中配置即可。
spring.datasource.url=jdbc:h2:file:<path to to store url>;DB_CLOSE_DELAY=-1;DB_CLOSE_ON_EXIT=FALSE
spring.datasource.driverClassName=org.h2.Driver
spring.datasource.username=sa
spring.datasource.password=
spring.jpa.database-platform=org.hibernate.dialect.H2Dialect
spring.jpa.hibernate.ddl-auto=update
【讨论】:
是的,我只使用 h2。但问题是在第一次运行保存条目后,在第二次运行中显示没有这样的条目。我想每次 Spring 重新创建 h2 数据库,是真的吗? 默认创建的内存数据库不是持久化的。如果您选择文件或 url 到 sql 服务器,那么它将是持久的;)以上是关于JPA 和数据库交互的主要内容,如果未能解决你的问题,请参考以下文章