JPA и eclipselink - переопределение FetchType.Eager - PullRequest
3 голосов
/ 11 августа 2011

У меня есть класс, где у нескольких участников есть аннотация:

@ManyToOne(fetch = FetchType.EAGER)

В определенной части моей программы они загружают слишком много данных. К сожалению, я не могу изменить эти аннотации, так как это повлияет на производительность других частей этой программы. Есть ли в eclipselink способ изменить это значение на LAZY для 1 конкретного запроса JPQL?

Чтобы сформулировать это по-другому, вы можете изменить LAZY на EAGER, используя выборочное соединение. Я надеюсь на то, что меняет EAGER на LAZY

Ответы [ 2 ]

2 голосов
/ 11 августа 2011

Это невозможно.Мое эмпирическое правило таково: делайте все ленивым и используйте пользовательские запросы, если вы хотите получать с нетерпением.

Лучшее, что вы можете сделать, это загрузить кортежи (и заполнить DTO) вместо загрузки сущностей.

0 голосов
/ 12 августа 2011

Я знаю, что, начиная с eclipselink 2.3, вы можете расширять свои сущности во время выполнения, может, это проверить? http://wiki.eclipse.org/EclipseLink/Examples/JPA/Extensibility

...