У меня есть объект. Как узнать, сопоставлен ли его класс таблице в Hibernate?Как узнать, отображается ли класс как объект спящего режима?
4
A
ответ
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;
}