当前位置: 首页 > 知识库问答 >
问题:

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

冯开诚
2023-03-14

我使用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不会被AmazoneCryptionClient识别

我在跟踪这个aws doc:https://aws.amazon.com/blogs/developer/client-side-encryption-for-amazon-dynamodb/

有人面临过这个问题吗?如何解决这个问题?

共有1个答案

赵志
2023-03-14

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

@Getter(onMethod = @_(@DoNotTouch))
 @DynamoDBAttribute(attributeName="someProp")
 private String someProp;
 类似资料:
  • 我有一把刀: 问题是,当我试图使用DAO进行加载调用时,使用DynamoDBMapper以field d1作为哈希键来获取项目,它会抛出一个DynamoDBExc0019,说:为公共DAO. getField2()找到了空键,但实际上表的值对应于field d2。问题,这是因为Lombok注释而不是手动突变代码,还是一般来说我们一起使用Lombok和DynamoDBAnnotions?

  • 我可以使用注释将jdbi查询的结果映射到我感兴趣的bean,如下所示: 如果应用程序中使用的实例尚未注册到任何自定义映射器中,则此操作很好。 此映射器在应用程序开始时注册到实例,如下所示: 重写方法,并提供逻辑将任何类型的结果从数据库转换为相关的bean类型。正是这个uber转换器负责整个应用程序中所有DB到POJO的转换。 我的问题是:有没有一种方法可以告诉继续使用这个将结果从数据库转换为所有类

  • 我在我的应用程序中使用带有陶土的ehcache。当我使用带有陶土的ehcache时,我的响应时间增加了700倍。我认为陶土需要时间来测量物体的大小,因为它给了我警告: net.sf.ehcache.pool.sizeof。ObjectGraphWalker checkMaxDepth警告:在尝试计算对象图的大小时,已达到1000个对象引用的配置限制。如果继续调整大小操作,可能会出现严重的性能下降。

  • 问题内容: 什么时候在方法开始时使用块注释,什么时候使用Javadoc风格的注释? 在Java样式指南的“注释”部分中,我发现了这一点: Java程序可以有两种注释:实现注释和文档注释。实现注释是在C ++中发现的,由,和// 分隔。文档注释(称为“文档注释”)仅适用于Java,并以分隔。可以使用javadoc工具将Doc注释提取到HTML文件中。 实现注释用于注释掉代码或有关特定实现的注释。Do

  • 是否可以通过注释在Spring Cloud Circuit Breaker上使用Resilience4j?我找不到任何关于它的留档,只有关于通过代码使用弹性4j的示例

  • 我曾尝试使用来自Spring Boot和JSF/PrimeFaces/RichFaces的信息,但对我来说这不起作用。 我使用Java8、maven、Spring-boot和JSF和PrimeFaces。我希望有可执行的jar,并通过main方法或从命令行运行我的应用程序。 问题-JSF注释(、)被忽略。 我还尝试添加/删除javax.el-api/javax.el/jstl-同样的结果。对于be