数据库:MySQL
现有一段SQL代码,想将其翻译为Hibernate的HQL语句或者等效果的HQL语句,求高手指点。请高手大神帮我把这段SQL语句翻译成HQL语句:
SELECT c.* FROM (SELECT aa.* FROM (SELECT a.* FROM changerestfrom a WHERE a.applyPeopleId = 30 AND a.isEffect = '有效') aa INNER JOIN checkinresulttemp b ON b.checkInPeopleId = 30 AND TO_DAYS(aa.workTime) = TO_DAYS(b.checkInDate) ) c
INNER JOIN (SELECT d.checkInDate FROM checkinresulttemp d WHERE d.checkInPeopleId = 30 ) e ON TO_DAYS(c.changeTime) = TO_DAYS(e.checkInDate);
现有一段SQL代码,想将其翻译为Hibernate的HQL语句或者等效果的HQL语句,求高手指点。请高手大神帮我把这段SQL语句翻译成HQL语句:
SELECT c.* FROM (SELECT aa.* FROM (SELECT a.* FROM changerestfrom a WHERE a.applyPeopleId = 30 AND a.isEffect = '有效') aa INNER JOIN checkinresulttemp b ON b.checkInPeopleId = 30 AND TO_DAYS(aa.workTime) = TO_DAYS(b.checkInDate) ) c
INNER JOIN (SELECT d.checkInDate FROM checkinresulttemp d WHERE d.checkInPeopleId = 30 ) e ON TO_DAYS(c.changeTime) = TO_DAYS(e.checkInDate);
INNER JOIN (SELECT d.checkInDate FROM checkinresulttemp d WHERE d.checkInPeopleId = 30 )
其实hql转换为sql很简单。告诉你个方法。sql 面向数据库表查询,hql 面向对象查询。hql : from 后面跟的 类名+类对象 where 后用对象的属性做条件sql: from 后面跟的是表名 where 后 用表中字段做条件
顶一个!
有必要转hql么?
业务复杂的查询(比如多分支,逻辑控制,存储过程,索引视图,触发器),是hibernate难以做到的,楼主不用太执着,只要能运行,得到你想要的结果,效率也ok,就挺好了撒!