使用ADF绑定创建视图对象行CreateInsert操作
在這篇簡短的文章中,我將重點介紹與在任務流中創建新記錄的一種非常常見的方法有關的一個小陷阱。
讓我們考慮一個簡單的任務流示例,該任務流創建一個新的VO行,如果用戶單擊“確定”按鈕,則在頁面片段上顯示該行并提交事務:
剛剛從數據控件面板中拖放了CreateInsert方法調用。 事實是,如果用戶不更新任何VO屬性,
view1頁面片段, Commit方法調用將無濟于事。 新行將不會發布到數據庫。
出現這種現象的原因是,ADF綁定CreateInsert操作始終創建處于Initialized狀態的實體,框架在提交事務時會忽略它們。 即使實體具有默認值,或者它的Create方法被覆蓋了設置屬性值,也沒關系,在創建實體之后,實體仍將處于Initialized狀態
CreateInsert操作。
之后,如果修改了任何VO屬性,則該實體將獲得“ 新”狀態,并且該框架將在提交事務時發布更改(執行瓶坯插入語句)。 這種行為非常合乎邏輯,因為在大多數情況下,此類任務流會創建一個視圖對象行,以使其在提交給數據庫之前由用戶進行更新。 但是,大多數情況并非全部,如果需要,我們總是可以實現自定義VO方法來創建/插入新行并調用它,而不是標準的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
總結
以上是生活随笔為你收集整理的使用ADF绑定创建视图对象行CreateInsert操作的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 篦子怎么读 篦子的读音和解释
- 下一篇: Linux ssh 登录验证方式(lin