1

我想从 XML 文件创建一个 CompoundIndexes 注释,如下所示。

输入图片描述 e

但是,我不知道如何将带参数的 CompoundIndex Annotation 放在 CompoundIndexes Annotation 中。这是我尝试过的。

JAnnotationUse indexesAnnotation = currentClass.annotate(CompoundIndexes.class);

JAnnotationArrayMember arrayMember = indexesAnnotation.paramArray("value");

 JAnnotationUse indexesParameter = currentClass.annotate(CompoundIndex.class)
.param("def", some_parameter);

arrayMember.param(indexesParameter);

但是,我最终得到以下结果。

在此处输入图像描述

我怎样才能只获得嵌套的compoundIndexes 部分并摆脱下面的两个组件索引注释?

换句话说,如何创建一个注解并将其作为参数传递给另一个注解?

4

1 回答 1

0

查看来源,似乎param()已贬值并建议annotate()改用。使用annotate()可以解决您的问题:

JAnnotationUse indexesAnnotation = currentClass.annotate(CompoundIndexes.class);

JAnnotationArrayMember arrayMember = indexesAnnotation.paramArray("value");

arrayMember.annotate(CompoundIndex.class)
        .param("name", "email_age")
        .param("def", "{'email.id' : 1, 'age' : 1}");

给出:

@CompoundIndexes({
    @CompoundIndex(name = "email_age", def = "{'email.id' : 1, 'age' : 1}")
})
于 2018-11-25T21:44:54.733 回答