Как я могу присоединиться к представлению SQL в запросе Hibernate? - PullRequest
1 голос
/ 28 июля 2011

Я создал представление SQL, которое вычисляет функцию двух строк таблицы.Я хочу использовать представление, чтобы ограничить вывод запроса гибернации, но не уверен, что это лучший способ сделать это.

Представление инкапсулирует хранимую функцию:

CREATE FUNCTION f(ax, ay, bx, by) AS ... ;

CREATE VIEW f_view AS
  SELECT a.id a_id, b.id b_id, f(a.x, a.y, b.x, b.y) f FROM thing a, thing b;

ТеперьЯ хочу написать запрос гибернации, подобный этому запросу SQL:

SELECT Thing t1
INNER JOIN Thing t2 ...
INNER JOIN ...
INNER JOIN f_view v ON v.a_id = t1.id AND v.b_id = t2.id
WHERE t2.id = ? AND ... AND v.f < ?

Разумно ли использовать такое представление в запросе гибернации?

1 Ответ

1 голос
/ 28 июля 2011

Здесь доступны только следующие параметры:

  1. Отобразите f_view как (наиболее вероятный неизменяемый) объект в Hibernate - вы можете включить его в свой HQL-запрос.

  2. Вместо этого напишите свой запрос в виде SQL и сопоставьте его результаты с вашими (управляемыми или неуправляемыми) сущностями. Глава 18 Справочного руководства по Hibernate описывает все возможности здесь.

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