Речь идет о точном сопоставлении вычисляемых столбцов с объектами в Hibernate. У меня сложный SQL-запрос, который создает представление, которое вычисляет столбцы. Простая версия для иллюстрации ниже, где вызов функции сра будет кучей шероховатого SQL ...В Hibernate можно (и как) создать связь с именованным запросом?
CREATE VIEW `Complex` AS
select
`p`.`parentId` AS `complexId`,
avg(`t1`.`someColumn`) AS `complexColumn`
from
(`Parent` `p`
join `Table1` `t1` ON ((`p`.`parentId` = `t1`.`table1Id`)))
group by `p`.`parentId`
Существует класс Субъекта комплекса, который используется в ассоциации обратно Родитель присоединился complexId:
@Entity
public class Parent {
...
@OneToOne
@PrimaryKeyJoinColumn(name = "complexId")
private Complex complex;
...
Любые запросы коллекции, которые возвращают родительский элемент, хорошо возвращают результаты соответствующего представления, которое имеет вычисленные столбцы.
Вопрос заключается в том, есть ли способ создать эту же ассоциацию, написав сложный запрос без представления, например, как именованный запрос на спящий режим и сохраняя ассоциацию в Parent to Complex как есть?
Причина этого связана с ограничениями мнений в MySql относительно параметров и подзапросов, которых можно было бы избежать, если бы все это можно было представить в запросе, ориентированном на неотображение.
Проблема с использованием формулы в моем случае, что есть более чем один сложный столбец, и они также зависят от других вычисленных результатов, поэтому использование Формулы-х было много дублированных подразделы запросов, который завершится выполняются как отдельные запросы, а не оптимизированы в один. – HandyManDan