Извлечение дочернего объекта после фиксации объекта-сущности - PullRequest
0 голосов
/ 29 октября 2010

Допустим, я получаю объект сущности, который выглядит следующим образом:

@Entity
public class Mother {
    ...

    @OneToMany(mappedBy = "mother",
               targetEntity = Child.class,
               fetch = FetchType.LAZY)
    public List<Child> getChildren() {
        return children;
    }
}

При извлечении вышеуказанного объекта я фиксирую транзакцию (и закрываю сеанс, связанный с объектом). Позже в коде есть необходимость извлекать детей. Если бы я хотел сохранить тип выборки как LAZY, есть ли способ использовать объект Mother и все еще иметь возможность вызывать getChildren () для получения дочерних объектов? Или мне просто нужно укусить пулю и спросить детей через ключ Матери?

1 Ответ

1 голос
/ 29 октября 2010

Если бы я хотел сохранить тип выборки как LAZY, есть ли способ использовать объект Mother и все еще иметь возможность вызывать getChildren () для извлечения потомков?

Неесли EntityManager был закрыт.

Или мне просто нужно укусить пулю и запросить детей с помощью ключа Матери?

Вы можете получить детей, когда мать получит FETCHПРИСОЕДИНЯЙТЕСЬ:

SELECT m
FROM Mother m LEFT JOIN FETCH m.children
WHERE m.id = :id

Другие параметры включают:

  • с использованием шаблона Открыть Entity Manager в представлении (если вы используете веб-приложение)
  • с использованием расширенного контекста персистентности.
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...