将 lombok 注释与 DynamoDB 注释一起使用 [aws-dynamodb-encryption]

Using lombok annotations with DynamoDB annotations [aws-dynamodb-encryption]

我正在使用 AWS 加密 client.The 下面的代码抛出错误

错误:@DoNotTouch 不适用于字段

@Builder
@AllArgsConstructor
@NoArgsConstructor
@Data
@Getter
@DynamoDBTable(tableName = "jktest")
public class DataPoJo {


    private String title;

    @DynamoDBHashKey(attributeName = "dummyname")
    private String dummyname;

    @DynamoDBAttribute(attributeName = "example")
    private String example;


    @DoNotEncrypt
    @DynamoDBAttribute(attributeName = "title")
    public String getTitle() {
        return title;
    }

    public void setTitle(String title) {
        this.title = title;
    }

    @DoNotTouch
    @DynamoDBAttribute(attributeName="someProp")
    private String someProp;

}

但是如果我给 @DoNotTouch 配置如下 [with getters and setters]

private String someProp;
@DoNotTouch
@DynamoDBAttribute(attributeName="someProp")
public String getSomeProp() {
    return someProp;
}

public void setSomeProp(String someProp) {
    this.someProp = someProp;
}

这是有效的fine.I猜测 lombok 生成的 getter 和 setter 无法被 AmazonEncryptionclient 识别

我正在关注这个 aws 文档:https://aws.amazon.com/blogs/developer/client-side-encryption-for-amazon-dynamodb/

有人遇到过这个问题吗?如何解决这个问题?

我们必须使用 lombok.below 代码的 onX 功能修复问题

@Getter(onMethod = @_(@DoNotTouch))
 @DynamoDBAttribute(attributeName="someProp")
 private String someProp;