我需要在错误数据完全发布到数据库之前纠正错误数据...
我发现可以在View Object Impl Class中完成验证。我尝试使用以下代码在代码中进行更改:
public void beforeCommit(TransactionEvent e) {
Row row = this.getCurrentRow();
Row[] locationRows = this.getAllRowsInRange();
System.out.println(this.getCurrentRowIndex());
for (int i = 0; i < locationRows.length; i++) {
System.out.println(locationRows[i].getAttribute("PortSequenceNo"));
locationRows[i].setAttribute("PortSequenceNo", 100 + i);
this.validate();
System.out.println("validated");
this.postChanges(e);
System.out.println("Changes posted");
}
validatePSN(locationRows);
super.beforeCommit(e);
}
但是这段代码给出了以下错误:
javax.faces.el.EvaluationException:oracle.jbo.JboException: JBO-28202:在beforeCommit()中无效的实体。需要重新验证 并发布。在 org.apache.myfaces.trinidadinternal.taglib.util.MethodExpressionMethodBinding.invoke(MethodExpressionMethodBinding.java:58) 在 org.apache.myfaces.trinidad.component.UIXComponentBase.broadcastToMethodBinding(UIXComponentBase.java:1433)
请帮助我应该做什么,以便我可以对通过ADF表格发布的实际值进行最后一分钟更改
答案 0 :(得分:0)
答案 1 :(得分:0)
您可以覆盖方法public void postChanges(TransactionEvent transactionEvent)
但是,如果您在调用super之前进行了更改,则必须对每行执行row.validate(),您已经修改过。