在我的數據庫中的每個對象上,我都擁有CreatedBy,CreatedOn,ModifiedOn和ModifiedBy的審計字段。將CreatedBy和ModifiedBy映射到我創建的映射到我的用戶表的User對象。我最初將UserId(主鍵)存儲在這些字段中,並且所有東西都映射得很好,其映射定義爲 <many-to-one name="CreatedBy" column="CreatedBy" lazy="proxy"></many-to-one>
。NHIbernate:映射審計用戶
但是,我想切換這些字段來存儲用戶名,而我找不到如何從非主鍵字段加載持久性用戶實體。我研究過IUserTypes,ICompositeUserType,事件監聽器和其他一些隨機事物,但我似乎無法完成任何工作。
截至目前爲止,我已經添加了一個CreatedByName和ModifiedByName字段,用於存儲用戶名,而原始字段仍然存儲ID(在使用CompositeUserType時執行此操作),因此我有ID和用戶名如果需要的話。
這似乎是應該足夠普遍的東西,應該有一個解決方案,但我找不到任何東西。
謝謝。我發佈這個後很快就找到了。看起來它對我設置的L2緩存起作用,因爲它沒有使用主鍵進行查詢,所以我可能不得不重新考慮如何執行所有這些操作。 – jwynveen 2011-03-23 14:53:51