0

我阅读了堆栈跟踪,发现错误来自oracle.jbo.EntityImpl.lock(). 我读到这是由RowInconsistentException引起的。所以问题是我的数据库和 OAF 页面之间的数据差异。

我在方法的开头放置了一个断点。我看到了三个有趣的子对象mDatamOrigDatamChanged。我看到在我的情况下,mData内容与数据库相同并且mOrigData不同。我应该如何解释它?

4

1 回答 1

0

我发现这mData意味着 OAF 操作之前的状态,以及mOrigData之后的状态。mChanged包含更改属性的 id。在我的情况下,我已经在数据库中有一个非空值(非nullin mData),但在页面上我丢失了该值并试图将其null放入数据库(nullin mOrigData)。框架认为这是错误的。

我还有另一种情况:updated_at数据库中的属性比mData对象中的大。原来,数据库在 2 秒后在后台处理了该行,但 OAF 更早地读取了该行。当我尝试提交时,OAF 发现它在数据库中的状态较旧并抛出了同样的错误。

于 2021-10-27T11:36:45.990 回答