JCodeModel中的嵌套注释

时间:2018-08-25 06:59:56

标签: jcodemodel

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

enter image description e

但是,我不知道如何在CompoundIndexes Annotation中将带有参数的CompoundIndex 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);

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

enter image description here

如何仅获取嵌套的compoundIndexes部分并摆脱下面的两个componenet索引注释?

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

1 个答案:

答案 0 :(得分: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}")
})