[hibernate-dev] Another @Access quandry

Hardy Ferentschik hardy at hibernate.org
Wed Mar 26 15:14:39 EDT 2014


Hi,

you are right, the current code used @Access(AccessType.FIELD) - https://github.com/hibernate/hibernate-orm/blame/master/hibernate-core/src/test/java/org/hibernate/test/annotations/access/jpa/Course3.java
However, this is wrong. I actually looked first in my local checkout which is a bit outdated, but there @org.hibernate.annotations.AccessType is still used. 
Judging by the test name this was clearly the intent of the test as well.

It seems the test got changed a month ago in order to fix test failures - https://github.com/hibernate/hibernate-orm/commit/ff12d5c#diff-40
In this case the change was wrong. I guess the idea was to get rid of the deprecated annotation use, but the whole test should have been deleted.

—Hardy



On 26 Jan 2014, at 20:05, Steve Ebersole <steve at hibernate.org> wrote:

> Hardy, not sure where you are looking...  But in master Course3 DOES NOT use @org.hibernate.annotations.AccessType...
> 
> 
> On Wed, Mar 26, 2014 at 2:01 PM, Hardy Ferentschik <hardy at hibernate.org> wrote:
> 
> On 26 Jan 2014, at 05:13, Steve Ebersole <steve at hibernate.org> wrote:
> 
> >> From the test
> > org.hibernate.test.annotations.access.jpa.AccessMappingTest#testExplicitPropertyAccessAnnotationsWithHibernateStyleOverride
> > we have the following:
> >
> >
> > @Entity
> > @Access(AccessType.PROPERTY)
> > public class Course3 {
> >    private long id;
> >    ...
> >
> >    @Id
> >    @GeneratedValue
> >    @Access(AccessType.FIELD)
> >    public long getId() {
> >        return id;
> >    }
> >    ...
> > }
> >
> > The test asserts that this is a valid mapping.  Granted that the spec is
> > very unclear here, so I might be missing something.  The pertinent spec
> > section here states:
> 
> For what its worth, I think the mapping is not valid (according to my interpretation of the spec).
> @Access(AccessType.FIELD) would need to be specified on the field to take effect. Whether this mapping
> is valid in a sense that is ignores  @Access(AccessType.FIELD) is a different question.
> 
> However, referring to your test, afaics the test and class in question (Course3) uses
> @org.hibernate.annotations.AccessType("field”) which is a different thing altogether. Here we are dealing
> with the now deprecated org.hibernate.annotations.AccessType annotation. AFAIK, this annotation used
> to be placed together with other mapping annotations.
> 
> So what do we want to discuss here really?
> 
> —Hardy
> 
> 
> 
> 
> 
> 
> 




More information about the hibernate-dev mailing list