[英]Array of annotations as a javassist annotation member
我正在嘗試使用javassist動態創建以下注釋。 我找不到添加注釋數組( {@JoinColumn, @JoinColumn}
)作為javassist注釋成員的方法。 任何建議?
@ManyToOne
@JoinColumns({
@JoinColumn,
@JoinColumn
})
private Parent parent;
以下是構建簡單注釋的一些參考。
我在這里回答我自己的問題。
/*
* parentAnnotation, @JoinColumns object
* memberName, "value"
* memberValue, {@JoinColumn,...} object
*/
public void addMemberToAnnotation(Annotation parentAnnotation String memberName, Object memberValue){
if(memberValue instanceof Annotation[]){
ArrayList<AnnotationMemberValue> members = new ArrayList<AnnotationMemberValue>();
AnnotationMemberValue annotationValue;
for (Annotation a:(Annotation[])memberValue) {
annotationValue = new AnnotationMemberValue(cb.getCpool());
annotationValue.setValue(a);
members.add(annotationValue);
}
ArrayMemberValue arrayValue = new ArrayMemberValue(cb.getCpool());
arrayValue.setValue(members.toArray(new MemberValue[0]));
parentAnnotation.addMemberValue(memberName, arrayValue);
} else if ( ... ){
// Other cases
}
}
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.