我们正在与Spring Boot 1.5.8
(包括JUnit 4.12
)合作。我们的数据模型非常复杂。许多实体具有必需的(optional = false
)关系。举例来说,所需的@ManyToOne
关系如下所示(*不,我们没有这个不用担心):
现在,我想保留一个新朋友。为此,我需要在测试前坚持性别实体。它需要提交到数据库。因为我不允许与某人坚持新的关系。我实际上不知道该如何正确处理。
@Transactional
,因此应立即提交对数据库的更改。但这对我不起作用,genderRepo.getGender(id)
仍然没有返回任何结果,TransactionSynchronizationManager.isActualTransactionActive();
说是假。我仍然找不到我的错。但是总有一个很大的缺点,我需要手动清除数据库。EntityManagerFactoryUtils.getTransactionalEntityManager(entityManagerFactory).getTransaction()
处理交易手册。当我使用beginn&commit时,它可以工作,但是预先存储的数据,测试和清除将在不同的事务中处理。而且我还需要手动清除数据库。这减慢了测试的速度。有时还会导致故障。有没有更好的方法来解决这个问题?