我发现了我想编写的JPA映射中的模式。一个简单的例子如下:使用AspectJ将一个注解转换为许多注释
@OneToMany(fetch=FetchType.EAGER)
@Sort(type=SortType.NATURAL)
private SortedSet<Item> items;
我想创建一个名为SortedOneToMany一个注释,我可以向上面的设置:
public @interface SortedOneToMany {
FetchType fetch() default EAGER;
SortType sort() default NATURAL;
Class comparator() default void.class;
}
我写了下面的方面,以“附加”的JPA每当它看到我的注解注释:
public aspect SortedOneToManyAspect {
declare @field: @SortedOneToMany * * : @OneToMany(fetch=FetchType.EAGER);
declare @field: @SortedOneToMany * * : @Sort(type=SortType.NATURAL);
}
但我不知道我怎么可以访问SortedOneToMany注释参数的值,并用它们定义OneToMan时y和排序注释。可能有,我想改变,像这样的默认值中的一个情况:
@SortedOneToMany(sort=SortType.COMPARATOR,comparator=ItemComparator.class)
private SortedSet<Item> items;
所以,我怎么能传递从SortedOneToMany注释值排序的注释?