繁体   English   中英

用Hibernate调用存储过程

[英]Call stored procedure with Hibernate

我想用hibernate从PostgreSQL调用存储过程。 但是,如果我通过entitymanager.getResultList调用此过程,则会返回给我一个带有奇怪属性名称的对象的列表。 程序:

CREATE OR REPLACE FUNCTION public.show_top10()
  RETURNS SETOF users
AS
$BODY$
  SELECT * FROM users
    ORDER BY message_count DESC
    LIMIT 10;
$BODY$
LANGUAGE sql VOLATILE;

用户的属性:

private Integer id;
private String login;
private String password;
private Timestamp dateCreated;
private Long messageCount;
private Integer role;
private Collection<Message> messagesById;

致电:

List<Users> result = null;
            StoredProcedureQuery storedProcedureQuery= entityManager.createStoredProcedureQuery("show_top10");
            storedProcedureQuery.execute();
            result = storedProcedureQuery.getResultList();
            entityManager.getTransaction().commit();

结果:

结果

您期望什么?
您的SP从SELECT查询返回ResultSet ,有10条记录。
SQL本身仅返回值, 而不返回字段名...

更进一步- 为什么您要创建一个返回ResultSet的SQL函数?

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM