问候!我编写 REST 服务。Oracle 数据库上有一个函数,它返回数据库中EXP_TYPE定义的类型的对象:
function GET_EXP_TYPE(pID in EXP_TYPE.ID%TYPE) return PKG_TYP.EXP_TYPE pipelined;
我的目标是在本机SQL中简单地调用此函数,而不使用 Criteria API。
总体思路很清楚,但到目前为止,还无法编制一个清晰的一系列动作列表,例如(非常粗略地):
Query = entityManager.createNamedQuery("TO CALL PROCEDURE", aResultClass);Прописать result-set-mappingПрописать приведение STRUCT к тому что мне нужно
此外,我无法正常系统化它。你能帮忙举个例子吗?或代码。
看,这是我问过的第二个此类问题,没有回应,没有评论。没人知道吗?
JPA:休眠 5.0.10
IDE:JBoss 开发工作室
您可以使用休眠- 本机 SQL
例子:
在这里阅读更多:
https://docs.jboss.org/hibernate/orm/3.3/reference/en/html/querysql.html
要调用原生查询,只有这样一个方法:EntityManager.createNativeQuery(String sql)
并且该函数可以替换为 select your_function() from dual
根据文档,您还可以调用特定函数。 https://docs.jboss.org/hibernate/orm/4.1/devguide/en-US/html/ch13.html#sp_query
例如:
执行结果投影到属性中:
我必须马上说,在 Hibernate 中我没有脚踏实地,我只知道 Oracle。如果您有一个
pipelined函数并且需要“从简单的 SQL”中获取数据,那么您只需将其包装在一个视图中(当然是在 oracle 端):接下来,您将拥有一个常规视图,对于外部观察者来说,它与一个简单的表格完全没有区别。你可以向它提出任何要求。