我的問題很簡單,但總體很重要 - 我想。我已經做了幾個小時的研究,但沒有發現任何有用的東西。使用級聯
介紹:
我有一個名爲Employee的實體 - 這是我係統的中心類(可以說它的人力資源管理)。通過寫作中心我認爲它與其他實體有很多關係。其中有OneToOne,OneToMany和ManyToOne屬性。 問題:
在某些情況下,我必須在一個EntityManager上下文(hibernate Session)中更改此實體(它也具有「String name」等基本屬性)並且必須刷新其他實體。當然,我可以用它:
entityManager.refreash(employee);
但是......這也將刷新像「一百」相關的entites(提到:1-1,-1,1-關係),因爲這些關係有註釋參數Cascade.All或Cascade.REFREASH。在這種情況下不需要什麼 - 我只在這種情況下使用Employee實體本身。什麼是不想要的,因爲它會觸發性能,甚至在本地需要0.5秒...
問題:
有什麼辦法刷新實體可選擇關閉其屬性上的級聯。或者,也許:有沒有什麼辦法只使用Hibernate/JPA刷新實體的特定屬性?
我真的不希望那些由Hibernate觸發的20多個更長的SQL查詢,當我在這些情況下刷新我的實體時,但在其他情況下它是需要的。
換句話說,我會說我需要像「respectCascadesOnRefresh = true/false」這樣的選項,它可以在refreash之前設置。
還有其他想法嗎?
讚賞任何幫助,
佩德羅
1.嗯......在這種情況下不是正確的選項,因爲這不是一些「手動刷新」,確保它是由我的框架自動機制執行的,所以像「respectCascadesOnRefresh = true/false」這樣的選項會有用。標準 - 在這種情況下我看不到它們有用。 2.你可能是對的:) 3.他們不尊重刷新。附:我不使用休眠來生成我的數據庫模式。這不僅僅是爲了生產「模式」嗎? – Pedrop 2011-03-22 14:32:26
3.這並不能解決1-1和* -1的關係。並且:我使用它們:)感謝您的回答! :) – Pedrop 2011-03-22 14:38:42
對不起,我想寫:「附言:我不使用Hibernate來生成我的數據庫架構是不是它的發展。‘模式’只?」它是。 – Pedrop 2011-03-22 15:15:17