2013-01-15 55 views
2

我想獲得帶有惰性獲取類型的註釋的屬性列表。我可以通過反思做到這一點,並在手邊閱讀。不過,我想知道是否有任何其他方式從ClassMetaDataPersiter之前獲得懶惰屬性列表? getPropertyLaziness沒有返回正確的結果,getLazyProperties也是如此?如何獲取使用fetch = FetchType註釋的屬性名稱?

回答

2

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

我這樣做,只是,但我不能看到propertyLaziness爲真。我可以看到,在collectionMetaData中他們很懶。但是,從CollectionMetaData中,我無法獲得OneToOne惰性,因爲它們不是集合 –