[ moving to amber-spec-experts]

I tend to agree.  It will take longer to adopt, but it _is_ a new kind of target in a source file, and then frameworks can decide what it should mean, and then there's no confusion.

It's possible, too, as a migration move, to split the difference, though I'm not sure its worth it -- add a new target, _and_, if the target includes param/field/method, but does _not_ include record, then lower the anno onto all applicable members.

On 4/10/2018 1:34 PM, Remi Forax wrote:
No, not right for me,
a new Annotation target is better so each framework can decide what it means 
for its annotation.

It will slow the adoption but it's better in the long term.


----- Mail original -----
De: "Kevin Bourrillion" <kev...@google.com>
À: "Gunnar Morling" <gun...@hibernate.org>
Cc: "amber-dev" <amber-...@openjdk.java.net>
Envoyé: Mardi 10 Avril 2018 19:25:57
Objet: Re: Records -- Using them as JPA entities and validating them with Bean 
On Mon, Apr 9, 2018 at 1:39 PM, Gunnar Morling <gun...@hibernate.org> wrote:

   * Annotation semantics: I couldn't find any example of records with
annotations, but IIUC, something like

         @Entity record Book(@Id long id, String isbn) { ... }

     would desugar into

         class @Entity public class Book { private @Id long id, private
String isbn; ... };

     For the JPA entity use case it'd be helpful to have an option to lift
annotations to the corresponding getters instead of the fields (as the
location of the @Id annotation controls the default strategy -- field vs.
property -- for reading/writing entity state). Similarly, Bean Validation
would benefit from such option.

My assumption has been that we would allow an annotation on a record
parameter as long as it has *any of *{FIELD,METHOD,PARAMETER} as target,
and that the annotation would be automatically propagated to each
synthesized element it applies to. Does this sound about right to everyone?

Kevin Bourrillion | Java Librarian | Google, Inc. | kev...@google.com

Reply via email to