On Thu 2014-03-06 11:30, Hardy Ferentschik wrote:
On 5 Jan 2014, at 18:40, Steve Ebersole <steve(a)hibernate.org> wrote:
> Historically annotation binding within Hibernate made a huge assumption
> that AccessType and PropertyAccessor were the same thing. They aren't
> necessarily. AccessType is simply meant to dictate where to look for
> annotations relating to "persistent attributes". PropertyAccessor is
> Hibernate's way of accessing property values (getting/setting) at runtime.
>
> Granted, AccessType *by default* should indicate the PropertyAccessor to
> use. I am not arguing that. I am just suggesting that we should keep both
> as distinct values. At the moment we collapse them into a single String
> (we dump AccessType and keep "PropertyAccessor name").
>
> The trouble is that later on we sometimes need to know the AccessType, at
> which point we are forced to make a guess by interpreting the
> PropertyAccessor in use and hoping that a custom PropertyAccessor was not
> supplied.
I don’t know where it is exactly where you need the distinction, but if you do,
I also think they should be kept separated. Also having distinct concepts for this maybe
makes concepts also a bit clearer.
AccessType in JPA means both but is also much more limited than our
PropertyAccessor approach. If your plan is to separate them in the
metamodel, then +1 and if propertyAccessor is not set, fall back to
JPA's default behavior.