我的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
扩展注释。显然,这种解决方案的缺点是在访问实体中的字段时增加了复杂性。