【发布时间】:2011-05-05 17:18:09
【问题描述】:
我在我的 JPA 映射中发现了一个我想编码的模式。一个简单的例子如下:
@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 注释参数的值并在定义 OneToMany 和 Sort 注释时使用它们。在某些情况下,我想更改其中一个默认值,如下所示:
@SortedOneToMany(sort=SortType.COMPARATOR,comparator=ItemComparator.class)
private SortedSet<Item> items;
那么如何将注释值从 SortedOneToMany 传递到 Sort 注释?
【问题讨论】:
标签: java annotations aspectj