2009-10-22 1 views

ответ

5

EDIT: Мой первоначальный ответ работает, но будет инициализировать унифицированные прокси, что может быть нежелательным.

Лучшее решение

boolean isHibernateEntity = sessionFactory.getClassMetadata(HibernateProxyHelper.getClassWithoutInitializingProxy(yourObject)) != null; 

Оригинальный ответ:

boolean isHibernateEntity = sessionFactory.getClassMetdata(Hibernate.getClass(yourObject)) != null; 
0

И здесь без sessionFactory:

private boolean isEntityClass(Object o){ 
    if(o != null){ 
     Type[] interfaces = o.getClass().getGenericInterfaces(); 
     for(Type interf : interfaces) 
      if(interf.equals(HibernateProxy.class)) 
       return true; 
    } 
    return false; 
}