有个HQL:from A left join fetch B where ...
现在需要根据B的条件来过滤结果集 发现过滤条件并不起作用
数据库是sybase
被hibernate翻译的sql是
select ... from A,B where A.id*=B.id and B.xx=11
sybase的这个sql对应的标准sql是
select ... from A left join B on A.id=B.id and B.xx=11
而不是
select ... from A left join B on A.id=B.id where B.xx=11
但是我要的效果是where B.xx=11请问如何去改HQL
哥不会hibernate :)
现在需要根据B的条件来过滤结果集 发现过滤条件并不起作用
数据库是sybase
被hibernate翻译的sql是
select ... from A,B where A.id*=B.id and B.xx=11
sybase的这个sql对应的标准sql是
select ... from A left join B on A.id=B.id and B.xx=11
而不是
select ... from A left join B on A.id=B.id where B.xx=11
但是我要的效果是where B.xx=11请问如何去改HQL
哥不会hibernate :)
Connection conn = session.connection();
PreparedStatement pst = null;
ResultSet rs=null;
pst = conn.prepareStatement("select * from A,B where A.id*=B.id and B.xx=11");
rs = ps.executeQuery();
while(rs.next())
{
...
}
SQLQuery q = session.createSQLQuery("select ... from A left join B on A.id=B.id and B.xx=11
").addEntity(A.class);