【发布时间】:2018-06-25 22:14:44
【问题描述】:
我已将 test 应用程序属性配置为使用 Postgresql。所有测试似乎都有效,但这并不完全正确。
当我进行实际的持久性数据测试时,即使运行 liquibase,也没有数据保存到 postgresql 数据库中。
我使用 postgresql 配置的 application.yml 的相关部分。
spring:
application:
name: stackoverflow
jackson:
serialization.write_dates_as_timestamps: false
cache:
type: none
datasource:
type: com.zaxxer.hikari.HikariDataSource
url: jdbc:postgresql://127.0.0.1:5432/store_test?user=postgres
jpa:
database-platform: io.github.jhipster.domain.util.FixedPostgreSQL82Dialect
database: POSTGRESQL
show-sql: false
generate-ddl: false
hibernate:
ddl-auto: none
properties:
hibernate.id.new_generator_mappings: true
hibernate.cache.use_second_level_cache: false
hibernate.cache.use_query_cache: false
hibernate.generate_statistics: true
按照正常情况,有一个 createEntity 方法来表示实体 Company
我试过了
em.persist(company)
em.flush(company)
还有
companyRepository.saveAndFlush(company)
让 JHipster 对真实数据库进行更正测试,或者如果我错误地保存数据,我缺少什么。
【问题讨论】:
-
显示用于写入数据并验证它是否在数据库中的代码。
-
默认情况下,JHipster 生成的测试是
@Transactionalannotated,所以数据修改被回滚。 -
这就是我所理解的,但是当我在测试中间执行断点时,我看到整个表都丢失了,然后在特定单元测试完成后重新创建它。当我进行本机查询时,它不返回任何数据,但 Jpa 查询似乎可以工作。
-
您的本机查询是否在同一事务中运行?我对此表示怀疑,因此即使应用程序在断点处停止,它也无法读取您的数据。这就是我对孤立的理解。
-
我不明白该声明及其应用方式。我们可以谈谈 gitter 吗?
标签: postgresql spring-boot spring-data-jpa jhipster spring-boot-test