使用ADF绑定创建视图对象行CreateInsert操作
在這篇簡短的文章中,我將重點介紹與在任務(wù)流中創(chuàng)建新記錄的一種非常常見的方法有關(guān)的一個小陷阱。
讓我們考慮一個簡單的任務(wù)流示例,該任務(wù)流創(chuàng)建一個新的VO行,如果用戶單擊“確定”按鈕,則在頁面片段上顯示該行并提交事務(wù):
剛剛從數(shù)據(jù)控件面板中拖放了CreateInsert方法調(diào)用。 事實是,如果用戶不更新任何VO屬性,
view1頁面片段, Commit方法調(diào)用將無濟于事。 新行將不會發(fā)布到數(shù)據(jù)庫。
出現(xiàn)這種現(xiàn)象的原因是,ADF綁定CreateInsert操作始終創(chuàng)建處于Initialized狀態(tài)的實體,框架在提交事務(wù)時會忽略它們。 即使實體具有默認值,或者它的Create方法被覆蓋了設(shè)置屬性值,也沒關(guān)系,在創(chuàng)建實體之后,實體仍將處于Initialized狀態(tài)
CreateInsert操作。
之后,如果修改了任何VO屬性,則該實體將獲得“ 新”狀態(tài),并且該框架將在提交事務(wù)時發(fā)布更改(執(zhí)行瓶坯插入語句)。 這種行為非常合乎邏輯,因為在大多數(shù)情況下,此類任務(wù)流會創(chuàng)建一個視圖對象行,以使其在提交給數(shù)據(jù)庫之前由用戶進行更新。 但是,大多數(shù)情況并非全部,如果需要,我們總是可以實現(xiàn)自定義VO方法來創(chuàng)建/插入新行并調(diào)用它,而不是標準的CreateInsert操作。 像這個:
public void addNewEmployee() {EmployeeViewRowImpl ?row = (EmployeeViewRowImpl) createRow();insertRow(row);}而已!
翻譯自: https://www.javacodegeeks.com/2017/12/creating-view-object-row-adf-bindings-createinsert-action.html
總結(jié)
以上是生活随笔為你收集整理的使用ADF绑定创建视图对象行CreateInsert操作的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 篦子怎么读 篦子的读音和解释
- 下一篇: 通过函数式编程实现动态对话框处理程序