我想获取带有带有延迟提取类型注释的属性的列表。我可以通过反思做到这一点,并事先阅读。但是我想知道是否还有其他方法可以从ClassMetaDataPersiter手中获取惰性属性列表? getPropertyLaziness没有返回正确的结果,getLazyProperties也返回吗?

最佳答案

getPropertyLazinessClassMetadata方法应该返回正确的值。

您是否尝试过像这样的事情:

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");
    }
}

10-04 11:06