1
我有一種情況,我不想補充一個引用的對象,只想更新對象上的id列。避免在id更新時重新水化實體nhibernate
public AppointmentMap() {
Table("appointment");
Id(x => x.appointment_id).GeneratedBy.Identity().Column("appointment_id");
References(x => x.actiongroup).Column("appointment_actiongroup_id");
References(x => x.resource).Column("appointment_resource_id");
References(x => x.client).Column("appointment_client_id");
... Other fields
我希望能夠在保存時更新appointment_client_id,但仍然有用於顯示目的的客戶端對象。如果這種情況做了我需要的一切,除了我想通過設置其整數值來保存appointment_client_id的部分以外,我不想使用DTO或其他構造來製造特殊情況。我正在使用無會話事務,因爲我正在運行的應用程序服務將使用Web服務打包,我不希望使用會話事務。
簡短的問題,你可以保存一個對象與其ID變化只有沒有補液發生。在我的應用程序中有數百個地方需要這樣的地方。
到目前爲止,這似乎是唯一的方法。我花了好幾個小時嘗試所有類型的東西,最後想出了相同的解決方案。我很想知道是否有任何消極的做法。我明天會測試更多這種解決方案,因爲我看到這個工作後馬上就會死掉。到目前爲止,你似乎有唯一的解決方案。 – SamMan
嗯,我真的很長一段時間使用doubled(reference和referencedId)映射。這是工作。對你來說甚至更好 - 設置引用來允許Insert(),但Not.Update(),並且將referenceId設置爲Not.Insert() - 但是Update()...簡單地說,我們可以使用;)享受NHibernate –
我知道這可能看起來很明顯,但告訴我,如果我是正確的,這將允許我創建一個新的引用實體並將其插入,但我將失去對這些實體的更新。但是,我所獲得的是通過允許我更新引用來更改指向哪個實體。無論如何,我可能不會編輯引用對象,因爲無論如何我都使用存儲庫方法,並且使用nhibernate處理Web服務,並使用映射來減少數據檢索的工作量。 – SamMan