Я только что включил ведение журнала запросов в базе данных, работая с JPA (EclipseLink), и стал свидетелем ужаса JPA «оптимизация» и «кеширование».JPA-запрос «оптимизация»
Например, делая простой JPA запрос следующим образом:
SELECT p FROM Picklist p;
... заставит JPA сделать миллион запросов SQL к базе данных (один запрос для каждой записи, поэтому выберите * из списка выбора где id = [...]). И Picklist - простая сущность!
Почему он не делает выбор SELECT * FROM Picklist и просто делает все остальное (заполняя Контраст Persistance или что-то еще) в памяти?
Нужен ли какой-то специальный переключатель, чтобы сказать ему об этом? Почему он работает так?
почему не ВЫБРАТЬ р от Picklist р; ? без (Picklist p) –
ошибка типографии, исправлена. – bozo