Предположим, у вас есть класс B
с лениво загруженным свойством c
. И что это хорошо везде в системе, кроме следующего:
У вас есть класс A
со свойством b
класса B
. Всякий раз, когда вы загружаете сущность типа A
, вы хотите загружать полную цепочку a.b.c
без ленивости.
Есть ли способ настроить этот тип логики в Hibernate?
Edit:
Свойство также может быть определено с помощью formula
, который является выражением SQL. В документации сказано:
Получена мощная функция
свойства. Эти свойства по
определение только для чтения. Недвижимость
значение вычисляется во время загрузки. Вы
объявить вычисление как SQL
выражение. Это затем переводит в
Подзапрос предложения SELECT в SQL
запрос, который загружает экземпляр:
<property name="totalPrice"
formula="( SELECT SUM (li.quantity*p.price) FROM [...] )"/>
Это сработало бы, если бы это был запрос Hibernate, который возвратил объект Hibernate.
Редактировать 2:
Другие мысли включают объявление класса B2
, который точно такой же, как B
, за исключением того, что свойство C
не загружается с отложенным доступом.
Пока варианты :
- Каждый раз полагаться на запрос, как предлагает skaffman.
- Используйте формулу в свойстве, чтобы получить поля, которые я хочу, но без объекта.
- Создайте
B2
класс с не ленивым b.c
. (некрасиво).