Java注释,总结了其他注释

时间:2017-09-20 14:46:10

标签: java spring hibernate jpa annotations

我想为JPA Entity字段创建一个注释,该字段总结了其他一些注释。这是我想要创建的注释:

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 {

}

但是这会在@Embedded中产生语法错误,因为@Embedded的目标是Field和Method。如果我删除@Embedded并单独使用它,则忽略@EmbeddAdministrativeData注释。这样做的正确方法是什么?

1 个答案:

答案 0 :(得分:0)

JPA 2.2支持" meta-annotations"根据{{​​3}}。然后,它归结为您的JPA提供程序是否支持JPA 2.2(我使用的那个,例如,这些文档的用途)。