首页 > 解决方案 > 使用返回表、休眠、postgresql 的函数

问题描述

我在 postgresql db 上有一个有效的存储函数

create or replace function sp1(d1 date, d2 date)
returns table(ServiceType varchar, counter bigint) as $$
begin
return query select servicerequesttype, count(*)as counter from events 
where creationdate>=d1 and creationdate<=d2
group by servicerequesttype 
order by(counter) desc;
end;
$$
language plpgsql;

它返回一个包含两列 varchar 和 bigint 的表。我执行它就像

select * from sp1();

现在我想在休眠时使用它。据我了解,我想在休眠状态下执行原始查询并为结果创建一个列表。

这是可能的,还是我必须重写存储过程?

标签: postgresqlhibernatespring-bootstored-functions

解决方案


您可以在数据库中创建一个视图,然后在 Java 代码中,您可以查询视图 这是一种在您有复杂查询或聚合值时使用的技术。

@Entity
@Table(name = "V_SERVICE_VIEW")
public class ServiceView {
..
..
}

推荐阅读