2012-06-09 71 views
0

我不確定我是否應該問這個問題的方式應該是 但我試圖在我的項目中創建一個新帳戶並且爲此方法我希望我的用戶實體爲CascadeType.ALL,但僅限於此創建帳戶方法。不適用於使用USER類的任何其他方法。休眠級聯在運行時

就像我想在某些特定方法的運行時使用FetchType.LAZY我在標準criteria.setFetchType.LAZY中實現它,而不是在我的實體中。

以同樣的方式,我可以在我的應用程序運行時執行CascadeType.ALL嗎?

這是在我申請級聯我的實體類,它的做工精細

public Class UserEntity implements Serializable 

    @Cascade({ CascadeType.ALL }) 
    @JoinColumn(name="teamId") 
    private TeamEntity teamId; 
} 

這裏是我的方法,其中我使用該級聯功能,現在我只想這個級聯功能,這裏面定義方法並從實體中刪除

這可能嗎?

public String addTeam(UserEntity userInfoEntity) throws Exception{ 
    Session session = sessionFactory.openSession(); 
    try { 
     Transaction tr = session.beginTransaction(); 
     Criteria crit = session.createCriteria(UserInfoEntity.class); 
+0

級聯是兩個實體之間關聯的屬性。這不是實體的財產。你的問題沒有多大意義。請顯示一些代碼,並說明您要執行的操作。 –

+2

閱讀有關級聯的hibernate文檔,因爲您不明白它們是什麼。你的問題根本沒有意義。當你只是查詢實體時沒有級聯的操作。 –

+0

https://forum.hibernate.org/viewtopic.php?p=2312128#2312128這裏有人問同樣的問題,他們提供了一些解決方案,可能是你可以理解Q和它的答案在這裏 – user1226162

回答

0

一套級聯@Cascade({ CascadeType.Save })則僅保存操作(其僅在創建用戶權限發生?)將級聯。

+0

謝謝,它作品保存,更新,但現在我的刪除查詢不起作用,任何想法.. – user1226162

+0

我解釋了你不想級聯的問題,除了這一個特例。如果你需要級聯設置它。 AFAIK在運行時不可能覆蓋這種行爲,我永遠也看不到需要它的用例。 – Firo