使用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()
让一切都毫无例外地运行。
这不是一个实际的测试,而是我试图理解的代码中重现的问题。
更多版本:
-
春季数据jpa:2.1.10。释放
-
hibernate核心:5.3.11。最终的
-
hibernate entitymanager:5.3.11。最终的