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 和数据库交互的主要内容,如果未能解决你的问题,请参考以下文章

数据库如何通过 Hibernate 与 jpa 注释的 pojo 类交互?

JPA教程

JPA:HellWord工程

地理位置分散的服务器、PostgreSQL 和 JPA

spring-data-jpa

Data JPA 和 Thymeleaf 综合实践