在声明实体POJO时,一直在努力寻找创建一些自定义JPA注释以替换重复字段的解决方案。有什么帮助吗?以下是我试图实现的目标:
//@Column(name = "is_enabled", nullable = false, columnDefinition = "tinyint(1) DEFAULT 1")
@ColumnBooleanNotNullDefaultOne
private Boolean isEnabled;
或
//@Column(name = "created", nullable = false, updatable = false, insertable = false, columnDefinition = "TIMESTAMP DEFAULT CURRENT_TIMESTAMP")
@ColumnTimestamp
private Timestamp created;
然而,我的尝试失败了。。。
@Target({METHOD, FIELD})
@Retention(RUNTIME)
@Column // <-- Error here (The annotation @Column is disallowed for this location.)
public @interface BooleanNotNullDefaultOne
{
}
任何帮助都是绝对必要的。
谢谢!
生成一个实现UserType并使用此注释的新类:
@Type(type="fully.qualified.name.of.YourUserType")
此外,@Column注释只能用于方法或变量。请查看Column接口定义的@Target以了解原因。