Reattach и отложенная загрузка исключение - PullRequest
0 голосов
/ 17 декабря 2010

Я столкнулся с исключением из-за отложенной загрузки, которое не могу понять.Сначала я получаю с помощью обычного метода поиска от менеджера сущностей сущность.После этого я запускаю метод, частью которого является:

object = getUnproxiedValue(object);
if (object == null) {
    ... // this part is not run
    return;
}
if (object instanceof Collection ) {
    ... // and I fall here with lazy load exception
    return;
}

Предполагается, что getUnproxiedValue дает объект, когда аргумент объекта является прокси, прокси инициализируется (загружается) и возвращается неупакованный объект.Что-то идет не так, потому что, когда есть коллекция, иногда она умирает с исключением из-за отложенной загрузки, объект beacuse имеет значение null, так почему первое условие не работает?

За любые подсказки и подсказки заранее спасибо, и я действительноочень признателен за любую поддержку в этом.

С уважением, P.

Ответы [ 2 ]

0 голосов
/ 21 сентября 2013

Используете ли вы EJB Beans?Ваш объект Object отсоединяется, когда вы покидаете транзакцию.Таким образом, вы не можете загрузить любые зависимые объекты (отложенная загрузка).Вы можете использовать расширенный диспетчер объектов контекста персистентности вместе с компонентом сеанса с сохранением состояния.Тогда вы можете использовать отложенную загрузку вне транзакции.И ваша сущность синхронизируется с базой данных.

0 голосов
/ 17 декабря 2010

LazyLoadingException указывает, что вы пытаетесь получить данные из БД без транзакции.Попробуйте использовать аннотацию @TransactionAttribute, чтобы обеспечить выполнение блока if (object instanceof Collection ) { в транзакции.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...