[hibernate-issues] [Hibernate-JIRA] Commented: (HHH-4527) Implements @j.p.Access
Emmanuel Bernard (JIRA)
noreply at atlassian.com
Mon Oct 26 11:03:13 EDT 2009
[ http://opensource.atlassian.com/projects/hibernate/browse/HHH-4527?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=34303#action_34303 ]
Emmanuel Bernard commented on HHH-4527:
---------------------------------------
At this stage, I think we should consider do the mapping in two passes:
- read all the field / properties
- based on this liste the "persistent" ones
- process them
> Implements @j.p.Access
> ----------------------
>
> Key: HHH-4527
> URL: http://opensource.atlassian.com/projects/hibernate/browse/HHH-4527
> Project: Hibernate Core
> Issue Type: Sub-task
> Components: annotations
> Reporter: Emmanuel Bernard
> Fix For: 3.5
>
>
> 2.3.1, 2.3.2
> "the default access type is determined by the placement of mapping annotations on the
> attributes of the entity classes and mapped superclasses of the entity hierarchy that do not explicitly
> specify an access type"
> "An access type for an individual entity class, mapped superclass, or embeddable class can be specified
> for that class independent of the default for the entity hierarchy by means of the Access annotation
> applied to the class. This explicit access type specification does not affect the access type of other entity
> classes or mapped superclasses in the entity hierarchy."
> "When Access(FIELD) is applied to such a class, it is possible to
> selectively designate individual attributes within the class for property access. To specify a
> persistent property for access by the persistence provider runtime, that property must be desig-
> nated Access(PROPERTY) [...] Persistent state inherited from superclasses is accessed in accordance with the access types of
> those superclasses."
> "When Access(PROPERTY) is applied to such a class, it is possible to selectively designate indi-
> vidual attributes within the class for instance variable access. To specify a persistent instance
> variable for access by the persistence provider runtime, that instance variable must be desig-
> nated Access(FIELD). Persistent state inherited from superclasses is accessed in accordance with the access types of
> those superclasses. "
> "The access type of an embeddable class is determined by the access type of the entity class, mapped
> superclass, or embeddable class in which it is embedded (including as a member of an element collec-
> tion) independent of whether the access type of the containing class has been explicitly specified or
> defaulted. A different access type for an embeddable class can be specified for that embeddable class
> by means of the Access annotation "
> So in "summary":
> - the default access type of a hierarchy is defined by where annotations are placed (id ideally) on classes that do not override access type
> - the @Access type is not inherited to subclasses (the default access type for the hierarchy is inherited) **
> - the access type of an embeddable or collection of embeddable, if not set explicitly is the one of its containing class (note the logic is different that in a hierarchy)
> - the @Access annotation can be placed on a field to force field access on a class defaulted to property (and vice versa) *
> * reverse behavior compared to @o.h.a.AccessType
> ** I think it's a different behavior than the current @AccessType annotation
> If possible, keep support for the legacy @o.h.a.AccessType:
> - it supports alternative access strategies
> - it will keep legacy apps running :)
--
This message is automatically generated by JIRA.
-
If you think it was sent incorrectly contact one of the administrators: http://opensource.atlassian.com/projects/hibernate/secure/Administrators.jspa
-
For more information on JIRA, see: http://www.atlassian.com/software/jira
More information about the hibernate-issues
mailing list