2011-12-16 97 views
1

說我有一個UserUserProfile實體。我希望能夠創建一個User u,將它保存/附加到Hibernate上下文中,然後只需調用,例如u.getUserProfile().setFirstName("Steve")而不必實例化並設置UserProfile對象。Hibernate可以懶洋洋地創建關聯的實體嗎?

爲了清楚起見,這裏的一些代碼:

// create, populate, and save user with only some primitive values 
// note that no UserProfile is explicitly set 
User u = new User(); 
u.setSomePrimitive(somePrimitive); 
u.setSomeOtherPrimitive(someOtherPrimitive); 
session.save(u); 

// navigate into and set something on the user profile 
u.getUserProfile().setFirstName("Steve-o"); 

基本上,我希望休眠懶洋洋地實例化連接實體協會對我來說。我認爲Hibernate可以非常容易地標記爲骯髒,並且只保留那些懶惰創建的關聯,並將數據設置給它們,否則忽略。

這可能嗎?

回答

1

不,它不是(這是一件好事!)。順便說一句,它只適用於一對一的強制性關聯。而且,在保存用戶之前,您必須填寫個人資料及其所有必需的值。 new UserProfile()有什麼難點?

如果您想這樣做,您可以在用戶的​​構造函數中創建配置文件,並設置級聯,以便在用戶處於保存時保存配置文件。

+0

我上面的用例提供了一個簡單的例子。真的,我很樂意在圖表中的更深處調用* -to-1子實體的setter。所有的新陳述都會破壞代碼。我剛開始這樣做,在我的構造函數中創建所需的關聯。謝謝! – 2011-12-16 22:48:02

相關問題