2010-12-23 70 views
0

是否可以檢測給定類的某個字段是否已被映射?查看字段是否已映射

E.G.

我有這個對象;

MyObject { 
    private MyOtherObject other 
} 

而在映射文件中;

<many-to-one name="other" class="com.mypackage.MyOtherObject" lazy="false" /> 

現在是否有可能在java中檢測到其他映射?我知道我可以創建一個包含映射字段等靜態類,但我寧願在飛行中檢測它。那可能嗎?

+1

您的意思是它是否已被加載到對象中,或者如果Hibernate已正確配置映射? – Jeremy 2010-12-23 10:54:43

+0

這兩者都可以,只要我可以看到Hibernate已經將它映射爲MyObject – Thys 2010-12-23 11:39:18

回答

1

如果您只想查看是否映射了MyOtherObject,則可以嘗試從該類的SessionFactory中獲取ClassMetadata。如果它爲空,則不會被映射:

s.getSessionFactory().getClassMetadata(Bar.class); 
0

使用註釋而不是xml並使用反射動態獲取註釋。

+0

我不喜歡註釋,也不可能適用於這個項目。 – Thys 2010-12-23 11:10:14