Мы работаем с набором веб-сервисов, которые мы разрабатываем.Hibernate возвращает прокси для объекта, установленного в EAGER
Одна из служб извлекает информацию из некоторых таблиц с использованием JPA-сопоставлений. Hibernate возвращает объект, и он работает так, как ожидалось.
Другие службы получают очень похожий объект, и он возвращает прокси вместо объекта чтения. Для выборки выбрано EAGER, поэтому я действительно не понимаю, почему это происходит. Мы попробовали несколько способов преобразования прокси-сервера в реальные данные (что я понимаю, что это необязательно, поскольку оно настроено на EAGER), но прокси-сервер не преобразуется.
Мы работаем с hibernate 3.5.4-final, если это имеет значение.
Я действительно не знаю с чего начать, любой намек?
@Entity
public class Foo1
{
@OneToMany(fetch = FetchType.EAGER, orphanRemoval = true, cascade = CascadeType.ALL)
private List<Foo2> list = new ArrayList<Foo2>();
}
@Entity
public class Foo2
{
@ManyToOne(fetch = FetchType.EAGER)
private Foo3 obj;
}
Чтобы получить данные, которые мы называем:
entityManager.find(Foo1.class, id);
Одна мысль у меня была в том, что, возможно, Hibernate оказывает внутреннее исключение удалось, и именно поэтому я получаю прокси вместо реального объекта?
EDIT Это конфигурация Hibernate, связанная с вопросом:
<property name="hibernate.max_fetch_depth" value="0"/>
<property name="hibernate.default_batch_fetch_size" value="16"/>
<property name="hibernate.jdbc.batch_size" value="16"/>
Можете ли вы опубликовать этот класс сущности и как вы получаете объект. –
@MadhusudanaReddySunnapu: сделано, извините. Я должен был добавить его изначально. –
Оба 'Foo2' и' Foo3' отмечены как EAGER. Я думаю, что вы видите прокси-сервер для списка «Список». Можете ли вы включить 'show_sql' и проверить, запущены ли запросы, чтобы получить отношения EAGER или нет? –