On 06/23/2011 05:42 PM, Gail Badner wrote: > I just ran into an issue where EntityBinding.getOptimisticLockMode() returns > an ordinal from a org.hibernate.annotations.OptimisticLockType enum that is > inconsistent with the static constants in > org.hibernate.engine.internal.Versioning. > > Jira issue: http://opensource.atlassian.com/projects/hibernate/browse/HHH-6362 > > I'm not clear on what conventions there are for enums that are > source-specific. > > My preference would be to: > > 1) Extract the static constants for version type from > org.hibernate.engine.internal.Versioning into a new enum that is an SPI, > org.hibernate.engine.spi.OptimisticLockMode. > > 2) Change EntityBinding.getOptimisticLockMode() and > EntityBindingState.getOptimisticLockMode() to return > org.hibernate.engine.spi.OptimisticLockMode. > > 3) Change sources to be responsible for converting from a source-specific > value to org.hibernate.engine.spi.OptimisticLockMode.
Aside from the enum name, I think this is all goodness. These are distinctly different from LockModes and we should avoid that confusion. I tend to like to use the term "strategy" with pluggable interfaces, but I think OptimisticLockingStrategy is definitely descriptive here. Anyone else with better names? > In the same vein, I see there is org.hibernate.metamodel.binding.CascadeType, > which is not source-specific. In that class, there's a TODO to integrate it > with org.hibernate.engine.spi.CascadeStyle. > > I also see that AttributeBindingState.getCascadeTypes() returns > Set<CascadeType>. > > My preference would be to remove org.hibernate.metamodel.binding.CascadeType > and to change AttributeBindingState.getCascadeTypes() and > AbstractAttributeBinding.getCascadeTypes() to: > > org.hibernate.engine.spi.CascadeStyle getCascadeStyle(); I think this is fine. The comment is Hardy's though, so lets let him respond to see if he had something else in mind. -- Steve Ebersole <st...@hibernate.org> http://hibernate.org _______________________________________________ hibernate-dev mailing list hibernate-dev@lists.jboss.org https://lists.jboss.org/mailman/listinfo/hibernate-dev