2012-12-12 26 views
1

如果我在我的web應用程序中使用JPA實體,如果可以取消(因爲它們幾乎都是可取消的),如何將多個鏈接的jpa實體綁定到一個表單? 即,你有jpa類Person和Document,以及Person映射爲@OneToMany到Document,以及一個映射到Person並具有映射到內部文檔的可編輯表格的表單。如果您打開此表單中的現有Person並編輯其中一個文檔,那麼將這些實體綁定到表單的最佳方法是什麼?您可以確保取消的表單將回滾對Bean所做的所有更改? 你如何在你的項目中解決這個問題?將jpa beans綁定到可取消表單的正確方法是什麼?

UPDATE。我試圖找出是否有任何可接受的解決方案,或者每個人都使用他們自己的方法,或者情況如此平淡,因此非常罕見?

回答

2

大量編輯從原來的答案

這取決於應用的要求。

通常,在用戶完成任務之前,您不會更新JPA模型。

在一個簡單的CRUD網絡應用程序中,這將是他們提交表單數據時 - 如果他們取消操作,那麼表單數據永遠不會被提交。在這種情況下,JPA模型是否與提交的表單數據「緊密綁定」是無關緊要的。

+0

因此,要實現第一個場景中的目標,我應該使用客戶端腳本(如GWT)而不是服務器端(如Vaadin)? 爲了解決第二種情況下的問題,我無論如何都被迫執行自己的邏輯,或者是否有任何框架/模式可以實現? –

+0

>被迫執行我自己的邏輯< 我的意思是 - 在複雜場景中,我沒有獲得綁定到JPA的更多好處? –

+1

恐怕我對GWT或Vaadin不熟悉 - 我試圖廣泛回答你的問題。 JPA只是將Java對象與「活動記錄」方法綁定到持久性存儲 - 將UI綁定到啓用JPA的對象的技術是一件單獨的事情。如果您希望獲得關於處理您的需求的最佳用戶界面/ Web框架的更明智的答案,您可能需要發佈一個新問題。 – ireddick

相關問題