我想从XML文件中创建一个CompoundIndexes批注,如下所示。
但是,我不知道如何在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);
但是,我最终得到以下结果。
如何仅获取嵌套的compoundIndexes部分并摆脱下面的两个componenet索引注释?
换句话说,如何创建注释并将其作为参数传递给另一个注释?
答案 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}")
})