我想获取带有带有延迟提取类型注释的属性的列表。我可以通过反思做到这一点,并事先阅读。但是我想知道是否还有其他方法可以从ClassMetaData
或Persiter
手中获取惰性属性列表? getPropertyLaziness
没有返回正确的结果,getLazyProperties也返回吗?
最佳答案
getPropertyLaziness
的ClassMetadata
方法应该返回正确的值。
您是否尝试过像这样的事情:
ClassMetadata meta = sessionFactory.getClassMetadata(entity.getClass());
String[] propertyNames = meta.getPropertyNames();
boolean[] propertyLaziness = meta.getPropertyLaziness();
for (int i = 0; i < propertyNames.length; i++) {
String propertyName = propertyNames[i];
// Check if the property fetch type is Lazy
if (propertyLaziness[i]) {
System.out.println("Property : " + propertyName + " fetch type is Lazy");
}
}