gpt4 book ai didi

java - 当不可能删除时,删除应该抛出异常

转载 作者:太空宇宙 更新时间:2023-11-04 14:47:23 26 4
gpt4 key购买 nike

我使用的是 Hibernte 4.3.x。

如果我尝试从 DB = EM.remove(entity) 中删除(删除)一个对象,如果 Hibernate 在实体管理器上下文中的托管对象中找到引用,则该对象将保留在 DB 中(删除未执行)。 (我猜是为了避免数据不一致)

配置/设置(到目前为止我什么也没发现)是否可能导致事务抛出异常,由于找到的引用而无法删除?

(这与级联/删除无关)

编辑:示例

EM.remove(ObjectA.getObjectB());

如果交易被执行。所有接缝都很好,没有异常(exception)。作为“初学者”,我希望删除 ObjectB。但事实并非如此。它还在那里。 EM“看到”仍然存在从 ObjectA 到 ObjectB 的引用,并且不执行删除。

如果我对 EM 说它应该保留或删除某些内容,但这是不可能的,我想知道这一点。

(我知道使用 ObjectA.setObjectB(null) 该示例有效)

最佳答案

如果您的问题确实是关于是否可以捕获异常,无论如何......您可以使用以下内容:

try
{
// your code...
DB = EM.remove(entity)
}
catch(Exception e)
{
System.out.println(e.printStackTrace());
}
catch(Throwable t)
{ // This one catches unchecked exceptions
System.out.println(t.printStackTrace())
}

这可以为您提供有关正在发生的事情的更多信息...

关于java - 当不可能删除时,删除应该抛出异常,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24246571/

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