/// <summary> /// 查询职位数量 /// </summary> /// <param name="positionSearcher">职位查询对象</param> /// <param name="tran">事务对象</param> /// <returns>返回查询到的数量</returns> public long Count(PositionSearcher positionSearcher, ICTransaction tran) { PositionSearcher querySearcher = null; HibernateTransaction hTran = null; ISession session = null; HQLQueryParser queryParser = new HQLQueryParser(); StringBuilder query = new StringBuilder(); query.Append("SELECT "); query.Append(" COUNT(*) "); query.Append("FROM "); query.Append(" Position P "); if (positionSearcher != null) { querySearcher = (PositionSearcher)positionSearcher.Clone(); querySearcher.TableName = "P"; if (querySearcher.CurrCompany != null) { querySearcher.CurrCompany.TableName = "C"; query.Append("LEFT JOIN "); query.Append(" P.CurrCompany C "); } if (querySearcher.CurrDepartment != null) { querySearcher.CurrDepartment.TableName = "D"; query.Append("LEFT JOIN "); query.Append(" P.CurrDepartment D "); } } queryParser.SearcherParse(querySearcher); if (!string.IsNullOrEmpty(queryParser.ConditionString)) { query.Append("WHERE "); query.Append(" " + queryParser.ConditionString); } if (tran != null) { hTran = (HibernateTransaction)tran; session = hTran.CurrentSession; } else { session = this.CurrentHibernateConfig.GetCurrentSession(); } long count = HibernateHelper.FindUniqueObjectByHQL <long>(session, query.ToString(), queryParser.ParamCollection); return(count); }