There are, generally speaking, 2 ways to refer to an entity's identifier property:
The special property (lowercase) id
may be used to reference the identifier property of an entity provided that entity does not define a non-identifier property named id.
If the entity defines a named identifier property, you may use that property name.
References to composite identifier properties follow the same naming rules. If the entity has a non-identifier property named
id, the composite identifier property can only be referenced by its defined named; otherwise, the special id
property can be used to rerference the identifier property.
Note: this has changed significantly starting in version 3.2.2. In previous versions, id
always referred to the identifier property no matter what its actual name. A ramification of that decision was that non-identifier
properties named id
could never be referenced in Hibernate queries.