我在Oracle ADF中有两个视图对象。
LineVO代表订单行 - 每个产品一行。
产品通过几个属性来区分......比如" model"和"颜色"。因此,VO#1为每个模型/颜色组合包含一行。
ModelVO表示线的模型级摘要。
两个VO都有"数量"字段(整数)。
它们之间有一个ViewLink,每个都有一个访问另一个的行。
我希望实现这两个视图对象之间的双向协调,例如:
我尝试了许多不同的方法来做到这一点,并且无法让它变得完美。
现在,我正在研究将ModelVO.Quantity设置为Groovy表达式" LineVO.sum(' Quantity')"的变体。不幸的是,我尝试的所有东西都有LineVO-> ModelVO工作的总结或者从ModelVO-> LineVO工作的传播,但从来没有同时工作。
有人可以建议一种方法吗?我想在模型层(EO或VO或组合)中进行。
答案 0 :(得分:0)
没关系......结果很简单:
ModelVO.Quantity
必须设置为Groovy“LineVO.sum('Quantity')”并且必须将recalcExpression
设置为我可以控制事物的方法,以便它只在我重新计算时重新计算更改LineVO.Quantity
值。
我的方法最初不起作用的原因是,当用户更新LineVO.Quantity
值并且我想重新计算时,我按ModelVO
获取了lineVORow.getModelVO()
行。即,通过视图访问器。
显然,返回行的某种内部副本而不是实际的行。
当我通过applicationModule.getModelVO().getCurrentRow()
获得父行时,整个过程完美无缺。
我发布了另一个问题,为什么通过视图访问器访问该行不起作用。那部分对我来说仍然是一个谜。