the HQL can't run on SQL Server. but no problem on HSQLDB.
the reason is:
select x from X x, Y y
join x ---------- error
on sql server it must be
select x from X x
cross join Y y
join ...................
how to?
SQLServerDialect can't change "from table1, table2" to " from table cross join table2" ?
[WARN ] [2005-07-14 09:28:08,781] net.sf.hibernate.util.JDBCExceptionReporter - SQL Error: 107, SQLState: S1000
[ERROR] [2005-07-14 09:28:08,796] net.sf.hibernate.util.JDBCExceptionReporter - column'prefix 'accessrequ0_' doesn't match to the table name or alias in query string
Code:
StringBuffer hql = new StringBuffer();
hql.append(" select distinct accessRequest from AccessRequest accessRequest ");
hql.append(", UserDetails userDetails ");
//SQL Server hql.append(" cross join UserDetails userDetails ");
//error return hql.append(" join accessRequest.userDetails userDetails");
hql.append(" join userDetails.setOfUserGroupRelation userGroupRelation ");
hql.append(" join userGroupRelation.uniformGroup userGroup ");
hql.append(" join userDetails.setOfAuthorities authorities ");
hql.append(" join authorities.id.roleDefiniens userRole ");
//......
hql.append(" join accessRequest.setOfRequestXfileBorrow borrow ");
hql.append(" join borrow.xfile xfileBorrow ");
hql.append(" join xfileBorrow.xource xourceBorrow ");
hql.append(" join xourceBorrow.setOfXourceGroupRelation xourceBorrowGroupRelation ");
hql.append(" join xourceBorrowGroupRelation.uniformGroup xourceBorrowGroup ");
hql.append(" join borrow.accessRuleTache borrowTache ");
hql.append(" join borrowTache.roleDefiniens borrowTacheRole ");
// hql.append(" join accessRequest.setOfRequestXfileDestory destory ");
// hql.append(" join accessRequest.setOfRequestXfileSend send ");
hql.append(" where (userDetails.relId=:relId) ");
hql.append(" and (userGroup.relId=xourceBorrowGroup.relId) ");
hql.append(" and (userRole.symbol=borrowTacheRole) ");
hql.append("");