sql语句
select {c.*}
 from SYSTEM_BILLTYPE_AUDITGLIDE a  LEFT OUTER JOIN SYSTEM_BILLTYPE_AUDITGLIDE b ON
  (a.BILLTYPE_AUDIT_PARENTCODE = b.BILLTYPE_AUDIT_CODE and
  a.billtype_auditglide_billtype = b.billtype_auditglide_billtype and
  a.BILLTYPE_AUDITGLIDE_OPTCODE = b.BILLTYPE_AUDITGLIDE_OPTCODE and
  a.member_code = b.member_code) ,purchase_plan c
 where  a.billtype_auditglide_optcode = c.plan_billcode 
 and a.billtype_auditglide_billtype = c.billtype_code
  and A.BILLTYPE_AUDITGLIDE_AUDIT=0 and a.billtype_auditglide_billtype = 'P001'
  and ((a.billtype_Audit_Person is null and a.billtype_Audit_Role is null)
 or (a.billtype_Audit_Person is not null and a.billtype_Audit_Role is null and a.billtype_Audit_Person like '%000011%')
 or (a.billtype_Audit_Person is null and a.billtype_Audit_Role is not null and a.billtype_Audit_Role like '%0000%'))
and (nvl(a.billtype_audit_parentcode,'--') = '--' or b.Billtype_Auditglide_Audit=1)  order by a.BILLTYPE_AUDITGLIDE_OPTCODE desc;hibernate 执行
 Query query = getSession().createSQLQuery(sql).addEntity("c", PurchasePlan.class);
 List list = query.list();