小编use*_*461的帖子

JPA EntityManager 与 Hibernate - 查找和删除不会从数据库中删除数据

无法使以下代码正常工作...

我已经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 提供的删除方法让它工作......)

任何帮助表示赞赏

java hibernate jpa jpa-2.0

2
推荐指数
1
解决办法
6240
查看次数

标签 统计

hibernate ×1

java ×1

jpa ×1

jpa-2.0 ×1