1
我尝试从类(hibernate实体)获取字段列表。就像这样:Java。如何通过反射获得不可空字段?
实体:
用于获取非静态字段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;
}
但我需要得到唯一的非空的非静态字段。这意味着我需要通过参数“nullable = false
”获得带有@NotNull
注释和@JoinColumn
注释的字段。
检查@NotNull
很简单:
field.isAnnotationPresent(NotNull.class)
但我不知道我怎么能检查领域@JoinColumn
与参数。 我该怎么办?有人能帮助我吗?
我会尝试此解决方案。感谢您的帮助! – Virkom