[英]Call stored procedure with Hibernate
I want to call stored procedure from PostgreSQL with hibernate. 我想用hibernate从PostgreSQL调用存储过程。 But, if i call this procedure throught entitymanager.getResultList, it's return me a list of objects with strange names of attributes.
但是,如果我通过entitymanager.getResultList调用此过程,则会返回给我一个带有奇怪属性名称的对象的列表。 Procedure:
程序:
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;
User's atributes: 用户的属性:
private Integer id;
private String login;
private String password;
private Timestamp dateCreated;
private Long messageCount;
private Integer role;
private Collection<Message> messagesById;
Calling: 致电:
List<Users> result = null;
StoredProcedureQuery storedProcedureQuery= entityManager.createStoredProcedureQuery("show_top10");
storedProcedureQuery.execute();
result = storedProcedureQuery.getResultList();
entityManager.getTransaction().commit();
And result: 结果:
What did you expect? 您期望什么?
Your SP is returning ResultSet
from SELECT
query, 10 records. 您的SP从
SELECT
查询返回ResultSet
,有10条记录。
SQL by itself only returns values, not field names... SQL本身仅返回值, 而不返回字段名...
Further more - why do you create a SQL function that returns a ResultSet
? 更进一步- 为什么您要创建一个返回
ResultSet
的SQL函数?
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.