在hibernate中使用update进行合并的解决方法

时间:2017-10-21 14:50:39

标签: java hibernate

我有一个场景,我试图在informix表中插入和更新一些行。我正在使用休眠。 我观察到调用合并操作不如调用更新操作有效。 但是我不能总是使用更新操作,因为我们可能有一个插入特定项目然后稍后更新的场景。在这种情况下,如果我使用更新操作,那么我得到NonUniqueObjectException(具有相同标识符的不同对象已经在会话中)。 我写了一个解决方法,它似乎工作。我想知道以下代码是否存在任何问题,以及我将来可能会遇到的问题。

我有办法告诉我需要更新或插入特定记录。

我的更新代码如下所示:

try{
session.update(entity);
}
catch(Exception e){
session.merge(entity);
}

我知道我将会有更少的场景,其中catch块中的代码将被执行,所以我对此感到满意。这会导致一些意想不到的问题吗?

请注意,除非绝对必要,否则我不想使用合并操作,因为合并操作会在执行更新之前调用select查询,这会导致性能问题。

0 个答案:

没有答案