> (1) An isDirty() interceptor callback, to allow an application to > implement its own dirty checking algorithm
Good idea. In some case simple equals() is not enough. Let the application have some sort of control, if needed. > (2) A new property attribute; update="never|auto", to declare > "readonly" properties that are updated outside the application > (by a trigger, for example). +1 > (3) A new property attribute; dirty-check="always|never" to allow > a property that isn't itself dirty-checked, but *is* updated > if other properties are dirty. (I am kinda ripping off a feature > of Castor here ;) Not sure about this. If another setter method updates a field then that field is dirty. Dirty checking overhead shouldn't be that high. > (4) Reintroduce dynamically generated SQL UPDATEs (which only > update dirty columns), as an option. I implemented this feature > at one stage, but the performance gains were not what you would > expect in my tests. However, it is worth having as an option. The reason updating only the dirty fields is important for me is that let's say I load only 3-4 fields of a big 20 field table (into a proxy class, but I would love to see a declarative approach instead of a proxy class), now I change one of these 3-4 fields and update(). Afaik Hibernate tries to save all 20 fields and many of them are null! Is that right? This feature is imho essential, but performance-wise it's not a big deal in most case but maybe effective if the table contains BLOB/CLOB or large varchar fields or when the database does a charset conversion on text columns. Ara. ------------------------------------------------------- This SF.NET email is sponsored by: SourceForge Enterprise Edition + IBM + LinuxWorld = Something 2 See! http://www.vasoftware.com _______________________________________________ hibernate-devel mailing list [EMAIL PROTECTED] https://lists.sourceforge.net/lists/listinfo/hibernate-devel