Community
Participate
Working Groups
This was found through a forum post at http://forums.java.net/jive/thread.jspa?messageID=276831#276831 When getID/setID is used, the property name used in Eclipselink is iD. With the previous example, using JPQL: "SELECT emp.ID from Employee emp" will throw an error, but "SELECT emp.iD from Employee emp" will work. 2.1.1. of the spec states in a note that "Specifically, if getX is the name of the getter method and setX is the name ofthe setter method, where X is a string, the name of the persistent property is defined by the result of java.beans.Introspector.decapitalize(X)." The decapitalize method should leave the property name in uppercase if the first and second characters are uppercase - so EclipseLink should be using the property name as ID.
Changed version to unspecified
Updating priority due to revised bug categorization process. See the following page for details: http://wiki.eclipse.org/EclipseLink/Development/Bugs/Guidelines#Priority_and_Target_Milestone If you feel the updated priority is incorrect, please send an email to eclipselink-users@eclipse.org.
This looks like a major bug to me, not just affecting ddl generation. This also means that mappedBy references would be incorrect in EclipseLink (and MapKey, MapsId, references in xml, etc). Dali and EclipseLink are also at odds on this one, Dali giving a validation error for something that works in EclipseLink and vice versa. Dali is using the JavaBeans Introspector.decapitalize api.
Upgrading priority
Created attachment 165941 [details] proposed patch This patch might change behaviour for some, as methods with annotations such as getCCustomers that would have properties named "cCustomers" are now going to have properties named "CCustomers". This might mean that JPQL accessing the property will need to change.
patch checked into trunk
Added doc note in resolved issues of release notes for 2.1
The Eclipselink project has moved to Github: https://github.com/eclipse-ee4j/eclipselink