introspection - имя таблицы объекта, управляемого Hibernate (JavassistLazyInitializer) - PullRequest
1 голос
/ 24 сентября 2010

Я хочу через самоанализ получить имя таблицы объекта, управляемого Hibernate (в lazy).

мой объект содержит "org.hibernate.proxy.pojo.javassist.JavassistLazyInitializer" в обработчике свойства.

мой объект имеет тип "mypackage.myObjectDO_ _javassist_2 $ $" и не содержит аннотаций, которые содержит класс "mypackage.myObjectDO" (я ищу аннотацию javax.persistence.Table).

Как мне это сделать?

1 Ответ

0 голосов
/ 24 сентября 2010

Я хочу через самоанализ получить имя таблицы объекта, управляемого Hibernate (в lazy).

Это необычная необходимость (Hibernate должен абстрагировать это), нодопустим, вам это действительно нужно ...

мой объект имеет тип (...) и не содержит аннотаций, содержащихся в классе (...)

Вам придется отменить прокси прокси.Вот небольшой метод из предыдущего ответа (от Божо):

public static <T> T initializeAndUnproxy(T var) {
    if (var == null) {
        throw new IllegalArgumentException("passed argument is null");
    }

    Hibernate.initialize(var);
    if (var instanceof HibernateProxy) {
        var = (T) ((HibernateProxy) var).getHibernateLazyInitializer()
                .getImplementation();
    }
    return var;
}

См. Также Преобразование прокси-объекта в реальную вещь на форумах Hibernate.

...