[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