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