我创建了一个 SQL View 来计算两个表行的函数。我想使用 View 来限制 hibernate 查询的输出,但我不确定最好的方法。
View 封装了一个存储函数:
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 查询的 hibernate 查询:
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 < ?
在 hibernate 查询中使用这样的 View 是否合理?
最佳答案
您唯一的选择是:
将您的
f_view
映射为 Hibernate 中的(很可能是不可变的)实体 - 然后您可以将其包含在 HQL 查询中。改为将您的查询编写为 SQL,并将其结果映射到您的(托管或非托管)实体。 Chapter 18 Hibernate 引用文档记录了所有可能性。
关于hibernate - 如何在 Hibernate 查询中加入 SQL View ?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6862548/