【问题标题】:JPA and database interactionJPA 和数据库交互
【发布时间】:2015-07-22 15:15:17
【问题描述】:

我对 Spring 和 JPA 环境很陌生。我使用repository.save(Office object) 操作编写了存储办公室信息的小代码。但是当我重新运行代码时,它显示没有这样的条目(我之前输入的)。如何使用 JPA 将信息永久存储在数据库中?

【问题讨论】:

  • 嗯,在 JPA 中,您通过将实体与持久性单元相关联来将实体持久化到数据库中。也许您应该向我们展示一些您迄今为止尝试过的代码,这样我们就不必为您重写有关 JPA 的教程。

标签: spring jpa jdbc spring-boot


【解决方案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 服务器,那么它将是持久的;)
猜你喜欢
  • 1970-01-01
  • 2020-12-14
  • 1970-01-01
  • 2011-06-24
  • 1970-01-01
  • 1970-01-01
  • 2019-12-26
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多