以编程方式添加Java Annotations

时间:2015-10-15 12:51:34

标签: java hibernate annotations

我有一个模型,它对Hibernate有一个@Column(nullable = false)注释,对于所有nullable = false的字段,我想以编程方式添加一些新的注释,如@NotNull和@ApiModelProperty(required = true) ) - 用于招摇。

所以,我希望能够从我的应用程序解析模型中的所有字段,获取现有注释并基于那些添加新注释。可以这样做吗?

更新:事情是,每次添加新字段时,如果它不可为空,则需要为某些框架添加至少2个其他注释,并且很容易忘记所有需要的内容。另外,我还想根据@Column长度属性添加一些注释 - >像@Length那样会产生验证错误,通过所有代码并仔细检查我们是否添加了所有缺失的注释是有点乏味的。这就是为什么我想知道我是否可以使用配置类来解析所有实体并添加缺少的注释。

1 个答案:

答案 0 :(得分:0)

您需要的是Programmatic constraint definition。以下是使用FluentApi格式的示例。扩展它以满足您的需求

ConstraintMapping mapping = new ConstraintMapping();
mapping.type( Car.class )
    .property( "manufacturer", FIELD )
        .constraint( new NotNullDef() )
    .property( "licensePlate", FIELD )
        .constraint( new NotNullDef() )
        .constraint( new SizeDef().min( 2 ).max( 14 ) )
    .property( "seatCount", FIELD )
        .constraint( new MinDef()value ( 2 ) )
.type( RentalCar.class )
    .property( "rentalStation", METHOD )
        .constraint( new NotNullDef() ); 

有更多详细信息和示例here

额外resource here(有点旧,但仍然保持良好)