gpt4 book ai didi

jpa - 没有初始 SELECT 的 eclipselink merge()

转载 作者:行者123 更新时间:2023-12-02 21:43:19 27 4
gpt4 key购买 nike

我正在尝试执行 merge(entity)使用 eclipselink,我想向 eclipse 指示这是否是更新或插入,因此它不必执行初始选择查询。感谢 this question 取得的进展,我有以下内容:



<pre><code>UnitOfWorkImpl uow = (UnitOfWorkImpl) ((EntityManagerImpl) em.getDelegate()).getUnitOfWork();

if (dbObj.isInDB())
{
uow.updateObject(dbObj);
}
else
{
uow.insertObject(dbObj);
}
</code></pre>

但是,我得到以下信息:



<p>org.eclipse.persistence.exceptions.QueryException:
Exception Description: Objects cannot be written during a UnitOfWork, they must be registered.
Query: UpdateObjectQuery</p>

我是否以正确的方式处理这个问题?如果是这样,我该如何纠正错误?

谢谢

最佳答案

感谢答案作者here ,工作解决方案如下,我自己跟踪数据库中的内容,其中“em”是 eclipselink 实体管理器:



AbstractSession session = ((EntityManagerImpl) em.getDelegate()).getUnitOfWork().getParent();
if (dbObj.getLastModifiedTime().isAfter(lastUpdated))
{
if (dbObj.isInDB())
{
session.updateObject(dbObj);
}
别的
{
session.insertObject(dbObj);
}
}

关于jpa - 没有初始 SELECT 的 eclipselink merge(),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19991877/

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