我正在使用AWS加密客户端。以下代码将错误抛出为
错误: @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 配置[以及getter和setter]
private String someProp;
@DoNotTouch
@DynamoDBAttribute(attributeName="someProp")
public String getSomeProp() {
return someProp;
}
public void setSomeProp(String someProp) {
this.someProp = someProp;
}
这很好,我想lombok生成的getter和setter不能被AmazonEncryptionclient识别
我正在关注以下AWS文档:https://aws.amazon.com/blogs/developer/client-side-encryption-for-amazon-dynamodb/
有人遇到这个问题吗?如何解决这个问题?
答案 0 :(得分:0)
我们必须使用lombok的onX功能。下面的代码解决了该问题
@Getter(onMethod = @_(@DoNotTouch))
@DynamoDBAttribute(attributeName="someProp")
private String someProp;