Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / Java [игнор отключен] [закрыт для гостей] / Boss 6.1, Hibernate 3.6.6 - иногда возвращается не объект а / 3 сообщений из 3, страница 1 из 1
14.12.2012, 19:06:52
    #38080016
GKS_Samara
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Boss 6.1, Hibernate 3.6.6 - иногда возвращается не объект а
Добрый день!

Делаю Query вида "select t from Entity where ..." и получаю список.
Иногда (воспроизводимо 100%) в списке один элемент (в тестовом примере
из 3х) не объект, а прокси. Классы разные и неверный объект одного
класса, но в других местах они (объекты этого класса) пачками
получаются, и ничего. Да и именно этот читается без проблем везди.

Обошёл таким бредовым кодом:
Код: sql
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
import javassist.util.proxy.MethodHandler;
import javassist.util.proxy.ProxyObject;

import org.hibernate.proxy.pojo.javassist.JavassistLazyInitializer;
..............
      List list = qu.getResultList();
      for (int i=0; i<list.size(); i++) {
        Object obj = list.get(i);
        if (obj instanceof ProxyObject) {
          ProxyObject proxy = (ProxyObject) obj;
          MethodHandler handler = proxy.getHandler();
          if (handler instanceof JavassistLazyInitializer) {
            JavassistLazyInitializer initializer =
(JavassistLazyInitializer) handler;
            obj = initializer.getImplementation();
            list.set(i, obj);
          } else {
            log.error("What this??? handler.class = " + handler.getClass());
          }
        }
      }
      return list;



Возникает закономерный вопрос- что это за бред среди бела дня? Как оно
может выдать не объект, а прокси вместо него?
Код напоминает индусский и хочется его выкинуть, но как не получать
подобнух фигню?

--
Алексей
JID: alxt@ya.ru
Posted
via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
14.12.2012, 19:11:56
    #38080031
забыл ник
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Boss 6.1, Hibernate 3.6.6 - иногда возвращается не объект а
ну вызвать метод на entity getName() какой-нибудь
...
Рейтинг: 0 / 0
17.12.2012, 09:33:35
    #38081449
GKS_Samara
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Boss 6.1, Hibernate 3.6.6 - иногда возвращается не объект а
Добрый день, забыл ник!
> ну вызвать метод на entity getName() какой-нибудь

Я так понимаю, результат будет тот же :)
Хотя да, код проще- спасибо, надо будет попробовать.

Но главный вопрос не в том, как лечить, а в том, почему так происходит?

--
Алексей
JID: alxt@ya.ru
Posted
via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
Форумы / Java [игнор отключен] [закрыт для гостей] / Boss 6.1, Hibernate 3.6.6 - иногда возвращается не объект а / 3 сообщений из 3, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]