问题描述
有个HQL:fromAleftjoinfetchBwhere...现在需要根据B的条件来过滤结果集发现过滤条件并不起作用数据库是sybase被hibernate翻译的sql是select...fromA,BwhereA.id*=B.idandB.xx=11sybase的这个sql对应的标准sql是select...fromAleftjoinBonA.id=B.idandB.xx=11而不是select...fromAleftjoinBonA.id=B.idwhereB.xx=11但是我要的效果是whereB.xx=11请问如何去改HQL哥不会hibernate:)
解决方案
解决方案二:
直接用JDBC语句Connectionconn=session.connection();PreparedStatementpst=null;ResultSetrs=null;pst=conn.prepareStatement("select*fromA,BwhereA.id*=B.idandB.xx=11");rs=ps.executeQuery();while(rs.next()){...}
解决方案三:
fromAleftjoinBwhereA.id=B.idandB.xx=11
解决方案四:
都让hibernate去死,那就让它去死吧,还问hql做什么?!
解决方案五:
那就JDBC吧,^_^
解决方案六:
方言改过了吗?实在不行用NativeSql吧SQLQueryq=session.createSQLQuery("select...fromAleftjoinBonA.id=B.idandB.xx=11").addEntity(A.class);
解决方案七:
引用3楼ticmy的回复:
都让hibernate去死,那就让它去死吧,还问hql做什么?!
你脑袋秀逗了么
解决方案八:
引用6楼listedbandit的回复:
引用3楼ticmy的回复:都让hibernate去死,那就让它去死吧,还问hql做什么?!你脑袋秀逗了么
这像个请教别人问题的人说的话吗??