无法使以下代码正常工作...
我已经JpaTransactionManager txManager自动连接到这个测试中。我知道 ID 为 39 的记录确实存在。它在交易结束时仍然存在......
TransactionStatus status = txManager.getTransaction(def);
A a = mock(A.class);
when(a.getId()).thenReturn(Long.valueOf(39));
sut.delete(a);
txManager.commit(status);
status = txManager.getTransaction(def);
a = sut.get(a.getId());
txManager.commit(status);
assertNull(a);
Run Code Online (Sandbox Code Playgroud)
类中的代码A:
public void delete(A a) {
a = getEntityManager().find(A.class, a.getId());
getEntityManager().remove(a);
}
Run Code Online (Sandbox Code Playgroud)
上面的assertNull检查总是失败有什么原因吗?无论我做什么,我都无法从系统中删除该对象 - 没有返回错误,也没有报告删除问题。(顺便说一句,直接在 HQL 中运行查询确实会导致数据库更新......我只是无法使用 JPA 提供的删除方法让它工作......)
任何帮助表示赞赏