users@jpa-spec.java.net

[jpa-spec users] [jsr338-experts] Re: _at_Convert precedence

From: gordon yorke <gordon.yorke_at_oracle.com>
Date: Thu, 22 Aug 2013 11:38:54 -0300

Hello Steve,
     The specification says in reference to @Converts that "Multiple
converters must not be applied to the same basic attribute." but in this
case it makes sense to have the convert on the Embedded attribute
override the convert within the Embeddable.
--Gordon

On 22/08/2013 11:09 AM, Steve Ebersole wrote:
> I could not find mention of this in the spec so wanted to start a
> discussion within the group. The concern is what to do when multiple
> @Convert definitions can apply to a given attribute. If the spec does
> cover this, I apologize; if so, could someone point out the section?
>
>
> 2 examples:
>
> 1) non-path
>
> @Entity
> @Convert( attributeName="firstName", converter=FNameConverter.class )
> class Person{
> ...
> @Convert( converter=FirstNameConverter.class )
> String firstName;
> }
>
>
> 2) path
>
> @Entity
> @Convert( attributeName="homeAddress.city",
> converter=HomeAddressCityConverter.class )
> class Person {
> ...
> @Embedded
> Address homeAddress;
> }
>
> @Embeddable
> class Address {
> ...
> @Convert( converter=CityConverter.class )
> String city;
> }
>
>
> In (2) I think it is clearly better to apply
> HomeAddressCityConverter. But in (1) I think it is less clear cut;
> there, personally, I'd think FirstNameConverter would be applied. But
> not sure it makes sense to have different precedence rules.