我读了堆栈跟踪,发现错误来自oracle.jbo.EntityImpl.lock()。我读到这是由RowInconsistentException引起的。所以问题是我的数据库和OAF页面之间的数据差异。
我在方法的开头设置了一个断点。我看到了三个有趣的子对象:mData、mOrigData和mChanged。我看到,在我的例子中,mData内容与数据库相同,而mOrigData有所不同。我该如何解释它呢?
发布于 2021-10-27 11:36:46
我发现mData在OAF操作之前表示状态,在OAF操作之后表示mOrigData - state。mChanged包含已更改属性的ids。在我的示例中,数据库中已经有一个非空值(mData中的非null),但是在页面上,我丢失了这个值,并尝试将null放入数据库中(mOrigData中的null)。该框架认为它是错误的。
我还有另一个例子:数据库中的updated_at属性比mData对象中的属性大。事实证明,数据库在2秒后在后台处理了行,但OAF在更早的时候读取了行。当我尝试提交时,OAF发现它在数据库中的状态较旧,并抛出了相同的错误。
https://stackoverflow.com/questions/69737943
复制相似问题