这句HQL语句,那里问题?
String hql = "delete from T1 where rtime not in(select rtime from T2)";//正确
String hql = "delete from T1 where rtime in (select rtime from T1 minus select rtime from T2)";//报错
T1与T2表中,都含rtime 字段
是hiberate不支持minus 吗?
是的话,那如此想用相减的话,那怎么弄?请大虾指点
------解决方案--------------------select rtime from T1 minus select rtime from T2
这种写法什么意思啊
------解决方案--------------------select rtime from T1 minus select rtime from T2 这两个要区分一下吧 rtime
------解决方案--------------------HQL不支持union(union all)、Intersect、MINUS、top关键字及带on的连接查询,但支持distinct、exists、all、any
------解决方案--------------------"delete from T1 where rtime in (select case when T1.rtime in(select T2.rtime from T2) then '' else T1.rtime end from T1)";
------解决方案--------------------如果查出来的值有很多个,你这个能减吗?
------解决方案--------------------minus指令是运用在两个标准SQL 语句上的,hibernate的hql语句是面向对象的,不是sql语句,所以不能用这个关键字。不过你可以通过session.creatSQLQuery(),去创建一个SQL查询,应该是可以用的。