【问题标题】:How do you test save() operations for Spring-Data JPA Repositories?您如何测试 Spring-Data JPA 存储库的 save() 操作?
【发布时间】:2012-09-13 08:33:23
【问题描述】:

我刚刚开始学习 JPA,并且正在使用 Spring-Data 和 Hibernate。我看起来一切正常,我想测试底层数据库以确保 JPA/Hibernate 正在做我认为应该做的事情。但是,每当我对实体执行 save() 时,Hibernate 不会像以前的基本 Hibernate 那样更新主键(自动生成)。 id 始终为 0,即使我知道插入语句已成功生成并可能发送到数据库。

如何让 Spring-Data/JPA 在保存实体时更新其主键?我正在使用 AbstractTransactionalJUnit4SpringContextTests。

【问题讨论】:

  • 你能发布你的测试源吗?您是否尝试重新分配返回值? person = repo.save(person);?
  • @reagten 实际上,这行得通。使用 Hibernate,保存操作没有返回值,但我想你必须使用 JPA。谢谢你。

标签: java spring hibernate spring-data


【解决方案1】:

你必须使用 save() 操作的返回值

person = repo.save(person);

【讨论】:

  • 保存不成功会返回什么?我想知道如何检查保存是否成功?
  • 您可以使用if (person != null)查看并返回响应。
  • 如果保存因任何原因失败,保存将抛出 IllegalArgumentException 所以它永远不会为空。
猜你喜欢
  • 1970-01-01
  • 2019-01-23
  • 2016-12-30
  • 2014-06-19
  • 1970-01-01
  • 2021-01-28
  • 1970-01-01
  • 2018-06-26
  • 2018-08-06
相关资源
最近更新 更多