Je souhaite créer une annotation pour un champ Entité JPA qui résume certaines autres annotations. Ceci est l'annotation je voudrais créer:Annotation Java qui résume les autres annotations
import java.lang.annotation.ElementType;
import java.lang.annotation.Retention;
import java.lang.annotation.RetentionPolicy;
import java.lang.annotation.Target;
import javax.persistence.AttributeOverride;
import javax.persistence.AttributeOverrides;
import javax.persistence.Column;
import javax.persistence.Embedded;
@Target(value = {ElementType.FIELD, ElementType.METHOD})
@Retention(RetentionPolicy.RUNTIME)
@Embedded
@AttributeOverrides({
@AttributeOverride(name = "createdAt", column = @Column(name = "created_at", columnDefinition = "TIMESTAMP WITH TIME ZONE")),
@AttributeOverride(name = "lastChangedAt", column = @Column(name = "last_changed_at", columnDefinition = "TIMESTAMP WITH TIME ZONE")),
@AttributeOverride(name = "lastChangedBy", column = @Column(name = "last_changed_by")),
@AttributeOverride(name = "createdBy", column = @Column(name = "created_by")) })
public @interface EmbeddAdministrativeData {
}
Mais cela donne une erreur de syntaxe à @Embedded parce que la cible de @Embedded est Champ et méthode. Si je supprime @Embedded et l'utilise séparément, l'annotation @EmbeddAdministrativeData est ignorée. Quelle serait la bonne façon de faire cela? Le JPA 2.2 prend en charge les "méta-annotations" selon this link
Je ne pense pas que je suis. Vous avez créé votre propre annotation et vous demandez comment faire en sorte que Hibernate le reconnaisse? La réponse, je le crains, c'est que vous ne pouvez pas - à moins que vous ne créiez votre propre fourchette d'Hibernate. – crizzis