[英]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.