gpt4 book ai didi

java - Spring data jpa 在非常具体的场景中抛出 TransientObjectException

转载 作者:搜寻专家 更新时间:2023-11-01 03:15:12 25 4
gpt4 key购买 nike

使用 spring-boot (2.1.8.RELEASE),我有一个看起来像这样的测试:

    @Test
@Transactional
public void myTest() {
Company updatedCompany = companyRepository.save(company);

em.detach(updatedCompany);

// (1)
companyRepository.getOne(updatedCompany.getId());

// (2)
companyRepository.save(updatedCompany);
}

哪里:

  • company被初始化为域实体。
  • em是一个 EntityManager .
  • companyRepository延伸JpaRepository<Company, Long>, JpaSpecificationExecutor<Company> .

这会抛出一个 TransientObjectException在线(2) .

但是,替换行 (1)companyRepository.findById(updatedCompany.getId()).get()让一切无一异常(exception)地运行。

这不是实际测试,而是我试图理解的从我的代码中重现的问题。

更多版本:

  • spring-data-jpa: 2.1.10.RELEASE
  • hibernate 核心:5.3.11.Final
  • hibernate 实体管理器:5.3.11.Final

最佳答案

经过一些研究,似乎是由以下原因引起的:https://hibernate.atlassian.net/browse/HHH-13590 .

将hibernate-core升级到5.3.12.Final解决问题。

关于java - Spring data jpa 在非常具体的场景中抛出 TransientObjectException,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58050135/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com