Ржевский Дмитрий Rzhevskiy Dmitry

понедельник авг 04, 2008

hibernate proxy: instance of not work

There hibernate model classes:

 


class diagram

If get reference from A to subclass AbstractB, hibernate return proxy for AbstractB.

 
I.e. (a.getAbstractB() instanceOf C || a.getAbstractB() instanceOf D) is false. a.getAbstractB() is proxy for AbstractB.

In order to correct programe necessary

AbstractB b= getImplementation(a.getAbstractB());
и тогда (b instanceOf C || b instanceOf D) будет всегда возвращать true

 

 

 

/** 
* unwrap from hibernate proxy.
* @param hibernateProxy proxy with objec subclass
* @return unwrapped object
*/
Object getImplementation(Object hibernateProxy) {
if (hibernateProxy instanceof HibernateProxy) {
HibernateProxy hibernateProxy1 = (HibernateProxy) hibernateProxy;
Object impl = hibernateProxy1.getHibernateLazyInitializer().getImplementation();
return impl;
} else {
return hibernateProxy;
}
}

There described similar problem for equals method

Комментарии:

Опубликовать комментарий:
  • HTML Syntax: Подключен
Дмитрий Ржевский

Тэги:
1912 256 256-ой_день _край a-3 a-3.ru archlinux borodino c3350 cave caves cloud clustecloud coin eagle eclipse engine experiments glusterfs hadoop heroku holiday java java7 jboss jdk7 jelastic jelastic.com job krasnodar_region labinsk linux livejournal lucene lunar new_job new_release paas paraglider pass phone programmer_day ruby samsung samsung_c3350 search supercomputers syany text usage_share xcover а_3 вычисления день_программиста доля_рынка затмение конкурсы краснодарский кутузов лабинск линукс луна лунное_затмение новая новая_работа облако облачные орёл параплан поиск праздник программирование работа распределённая рыбалка система суперкомпьютер телефон файловая ява

Calendar



Feeds

Search

Links

Navigation


  • Я в ЖЖ    
  • MirTesen.ru
  • Я в "Linked In"

  • Мои друзья
  • Алекслёха
  • Latron

  • Links:
    log4j.ru
    Apache Maven
    моё родовое имение
    Виндсёрфинг


    Моё резюме
    My resume


    XFN Friendly

    Поиск