可以创建组合注释,它将多个字段注释组合在一起



我的JPA实体中有一些布尔字段,它们以以下方式注释:

@Column(length = 1)
@Type(type = "yes_no")
private final boolean myField;

是否有可能创建一个组合注释(例如MyAnnotation),它结合了这两个注释?

@MyAnnotation
private final boolean myField;

如何?

显然,您可以创建一个注释来提供多个其他注释的等价内容。

同样明显的是没有JPA提供者会支持它,因为他们会检查javax。只有持久性注释(@Type不是javax.persistence)。

您想要的是类似于CDI原型-不幸的是,JPA不支持这样的概念,因此您必须复制循环注释。

如果你有能力将你的字段包装到一个对象中,你可以将它标记为@Embeddable并将你的字段放入其中-无论你将该对象嵌入到实体中,该字段上的注释都会被复制。您可以使用@AnnotationOverrides扩展注释。显然,这种解决方案的缺点是在访问实体中的字段时增加了复杂性。

最新更新