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. 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? _______________________________________________ hibernate-dev mailing list hibernate-dev@lists.jboss.org https://lists.jboss.org/mailman/listinfo/hibernate-dev