求一sql 语句用hibernate 的Criteria 怎么写?

请问以下生成的sql 语句用hibernate 的Criteria 怎么写
传入两参数 Long pid, Long userId
[code="java"]
StringBuffer sql = new StringBuffer();
sql.append("select * from BASEAUTH ");
sql.append(" where AUTHPID= ? and DELETEFLAG =0 "); sql.append(" and ISFUN=0 ");

     sql.append(" and AUTHID IN(");
     sql.append(" select AUTHID from BASEROLEAUTH where ROLEID in "); 
     sql.append(" (select ROLEID from BASEROLEUSER  where USERID=? ) ");
     sql.append(" union");
     sql.append(" select AUTHID from BASEUSERAUTH where USERID=?"); 

     sql.append(")");

[/code]

Criteria criteria =session.createCriteria(BASEAUTH.class);
Criterion criterion2 = Exdivssion.eq("pid",new Long(21));
criteria.add(criterion2);
就是类似上面这种,你试试吧。