On Fri, Mar 28, 2014 at 7:06 AM, Hardy Ferentschik <ha...@hibernate.org>wrote:
> > On 27 Jan 2014, at 23:54, Steve Ebersole <st...@hibernate.org> wrote: > > > This is a bit of a potentially insidious one. Not the best way to start > > off a discussion, I know :) > > > > The premise is this... Until now Hibernate has represented attribute > roles > > using dots. For an attribute named 'department' on the com.acme.Employee > > entity, the role would be "com.acme.Employee.department". In terms of > > embeddables, say Employee had an 'address' embedded with its own > attributes > > like 'city'. Then, the full role for 'city' would be > > "com.acme.Employee.address.city". > > > > As you can start to see the dots here are completely indistinguishable in > > terms of those which define the package/class and those which identify > the > > attribute "path". > > > > So one of the things I started playing with in 5 is to replace the > > separators used in attribute paths to use '#', such that > > "com.acme.Employee.address.city" would instead be > > "com.acme.Employee#address#city". This makes the role fully parseable > > which is actually useful in quite a few situations. And it REALLY helps > in > > things I have just started working on like storing metadata for > composites > > (embeddeds/embeddables) on the SessionFactory, which is the first step in > > support for some cool new features around embeddables like discriminated > > inheritance support. > > > > However, there is a minor drawback. Like all attributes, collections > have > > a role. Unfortunately the use of '.' in their role Strings leaks into > the > > SPI in terms of locating the CollectionPersisters. > > Which SPI exactly? > org.hibernate.engine.spi.SessionFactoryImplementor#getCollectionPersister(String role) > So the question is whether to continue with this path of replacing the use > > of '.' with '#' for attribute path separators. The drawback is > > unfortunate. The benefit is very nice, but I can't really say it is > > required atm. > > > > Votes? Thoughts? > > I like it. I have been wishing more than once that there would be a > clearer distinction. > As you say, some existing code is very fugly due to the existing dot > notation. > Even better, internally I have now Object-ified the notion of path and role: AttributePath and AttributeRole. _______________________________________________ hibernate-dev mailing list hibernate-dev@lists.jboss.org https://lists.jboss.org/mailman/listinfo/hibernate-dev