2010-07-20 116 views
0

我有2個類,父級和子級,關係爲@OneToMany。每個家長有0個或更多的孩子。更新後JPA OneToMany問題

@OneToMany(fetch=FetchType.LAZY, cascade={CascadeType.REMOVE}) 

父類還有其他字段,如名稱。

我在一個容器env中,所以我的UI是由JSP構成的。

當我想更改Parent對象時,我必須將它傳遞給一個servlet並傳遞給客戶端瀏覽器。在網頁上我不想放置所有的孩子信息,我只想要爲父母名稱設置文本字段。

當控制返回給我,我想創建一個全新的名稱的新Parent對象,並mergeEntityManger無需擔心孩子。

回答

2

我認爲正確的方法實際上是加載現有的父對象,將名稱屬性設置爲新的值,並將其保存。這實際上就是你在做什麼。

因此,您的表單需要一個字段作爲用戶可以輸入的名稱,而一個隱藏字段包含父級的id。在發佈表單時,可以通過id加載父對象,將名稱設置爲輸入的值,然後保存。

+0

謝謝戴維斯, 這可能是唯一的方法。在性能方面,我可以假設PersistenceContext可能已經有了一個對象的實例嗎? – 2010-07-21 00:20:45

+0

我不確定。這取決於你的緩存設置。我只是建議在正常情況下,通過ID查找速度非常快,除非您有成千上萬的孩子。永遠不要忘記,「不成熟的優化是所有邪惡的根源」;-) – 2010-07-21 02:07:29