【发布时间】:2017-03-01 15:19:41
【问题描述】:
我尝试从类(休眠实体)中获取字段列表。像这样:
实体:
public class A {
public static final Integer someValue = 1;
@Id
@GeneratedValue(strategy = GenerationType.IDENTITY)
@Column(name = "a_id")
private Integer id;
@ManyToOne(fetch = FetchType.LAZY)
@JoinColumn(name = "a_b_id", nullable = true)
private List<B> b;
@NotNull
@Column(name = "a_c_id")
private C c;
.........................
}
获取非静态字段的方法:
public static List<Field> getNonStaticFields(Class clazz) {
Field[] fields = clazz.getDeclaredFields();
List<Field> fieldsList = new ArrayList<>();
for (Field field : fields) {
if (!Modifier.isStatic(field.getModifiers())) {
fieldsList.add(field);
}
}
return fieldsList;
}
但我只需要获取不可为空的非静态字段。这意味着我需要获取带有@NotNull 注释的字段和带有参数“nullable = false”的@JoinColumn 注释。
检查@NotNull 很简单:
field.isAnnotationPresent(NotNull.class)
但我不知道如何使用参数检查 @JoinColumn 的字段。
我该怎么做?有人可以帮帮我吗?
【问题讨论】:
标签: java hibernate reflection annotations