hibernate的HQL,可以在 SELECT 后面加子查询吗?HQL怎么调用ORACLE的FUNCTION

刻舟求剑666888 2016-02-29 11:37:11
hibernate的HQL,可以在 SELECT 后面加子查询吗?

比如我有2个表,有相同的字段

SELECT AAA001,AAA002 FROM SY_A;

SELECT AAA001,BBB001,BBB002 FROM SY_B;


在ORACLE是这样写的
SELECT AAA001,(SELECT BBB001+BBB002 FROM SY_B WHERE AAA001= SY_A.AAA001) AAA002 FROM SY_A;

那在HQL怎么写?

----------------------------------------------------
还有HQL怎么调用ORACLE的FUNCTION
...全文
229 4 打赏 收藏 转发到动态 举报
写回复
用AI写文章
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
Royal_lr 2016-03-02
  • 打赏
  • 举报
回复
比较复杂的话,,建议使用原生的sql,,
hz890 2016-03-01
  • 打赏
  • 举报
回复
HQL不支持直接调用底层资料库的函数和存储过程。 需要使用原生SQL调用(比如2楼给出的方式)。 如果楼主不想用原生SQL访问资料库的函数和存储过程,可考虑将目标函数和存储过程的思路写在前段程序里。这无疑会增加工作量,楼主酌情考虑一下就是!
MageXellos 2016-03-01
  • 打赏
  • 举报
回复
HQL应该是没法直接调用PL SQL的。可以通过Hibernate获取session然后使用callablestatement去掉用PL SQL。
hz890 2016-03-01
  • 打赏
  • 举报
回复
HQL的字查詢只能置於where和having子句裏,可以考慮利用Hibernate的Subselect。 參考網址: http://fableking.iteye.com/blog/360868/

67,513

社区成员

发帖
与我相关
我的任务
社区描述
J2EE只是Java企业应用。我们需要一个跨J2SE/WEB/EJB的微容器,保护我们的业务核心组件(中间件),以延续它的生命力,而不是依赖J2SE/J2EE版本。
社区管理员
  • Java EE
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧