我有一個JSF轉換器,用於包含多種不同實體類型的SelectItem列表。在getAsString()
方法中,我創建字符串作爲類名後綴「:」和ID。加載javassist-ed Hibernate實體
MySuperClass superClass = (MySuperClass)value;
if(superClass != null) {
return String.valueOf(superClass.getClass().getName()+":"+superClass.getId());
}
這讓我在路上從UI做這個加載在getAsObject()
正確的實體回:
我的問題是,我在getAsString()
實體是一個代理。所以,而不是得到com.company.MyEntity
當我做一個getClass()。getName()我得到com.company.MyEntity_$$_javassist_48
所以然後它在find()
失敗。
有沒有什麼辦法(除了字符串操作)來獲得具體的類名(例如com.company.MyEntity)?
謝謝。
我已經使用((HibernateProxy)實體).getHibernateLazyInitializer()。getEntityName()或getPersistentClass(),但HibernateProxy包裝,所以它可能是要走的路。 – 2009-07-17 05:25:40