From: NHibernate J. <mik...@us...> - 2007-07-17 20:26:59
|
[ http://jira.nhibernate.org/browse/NH-814?page=3Dcom.atlassian.jira.pl= ugin.system.issuetabpanels:comment-tabpanel#action_15722 ]=20 Nels P. Olsen commented on NH-814: ---------------------------------- Having your property setters ignore requests to reassign the same value sho= uld be sufficient. Beyond that it is merely a potential optimization to NH= ibernate to keep it from repeatedly setting the a property to the same valu= e. All of our entity property setters ignore requetsts to reassign the sam= e value, both so that some properties can enforce the "set once" rule, and = also so that PropertyChanged events (all our entities implement INotifyProp= ertyChanged) don't get fired and time isn't otherwise wasted validating the= value. > Resetting of properties after initial set violates constraints we want to= protect > -------------------------------------------------------------------------= -------- > > Key: NH-814 > URL: http://jira.nhibernate.org/browse/NH-814 > Project: NHibernate > Issue Type: Improvement > Components: Core > Affects Versions: 1.0.2 > Reporter: Jim Showalter > Priority: Major > Fix For: LATER > > > We have properties on objects that are supposed to be set only once, when= first reading an object back from the database. Once in memory, they are n= ot supposed to be set again, and attempting to do so is supposed to throw a= n exception. Unfortunately, nhibernate's behavior appears to be less predic= table than we had thought. It assigns properties more than once. For exampl= e, when merging a disconnected object, it loads one from the database (thus= setting the properties), and then sets them again from the other object, t= hus violating the set-once rule. There are other cases similar to this. We = modified our rule to allow setting to null (or some other value indicating = not-yet-set) as many times as desired, then setting to some actual value, a= nd allowing setting to that same value as many times as desired. Setting to= a different value once set throws an exception. This seems to pacify nhibe= rnate, but we're not certain that it will work in all cases, and the behavi= or of nhibernate as far as resetting properties is concerned is undefined. = Our request is for nhibernate to be enhanced to have a notion of set-once, = which would be stated in the HBM file. This would make a property immutable= , with the sole setting of that property to be done on reading in from the = database. On save, a set-once property would be assumed to have already bee= n set--nhibernate would not set it itself when saving, only when reading. > This same request has been filed for hibernate as HHH-2245. --=20 This message is automatically generated by JIRA. - If you think it was sent incorrectly contact one of the administrators: htt= p://jira.nhibernate.org/secure/Administrators.jspa - For more information on JIRA, see: http://www.atlassian.com/software/jira |