|
7#
楼主 |
发表于 2010-12-16 10:20:15
|
只看该作者
/**1135
* 功能描述:根据条件查询动态表,返回指定的对象
*
* @param queryName 命名查询名称
* @param filters 查询条件
* @param table 动态表名
* @param alias 命名查询中返回对象的别名,可以为null,此时returnType无效
* @param returnType 返回对象的类型
* @return List<?>
* @throws DataAccessException 数据库访问异常
*/
public List<?> findByDynamicTable(final String queryName,
final List<Filter> filters, final String table, final String alias,
final Class<?> returnType) throws DataAccessException
{
try
{
return (List<?>) getHibernateTemplate().execute(
new HibernateCallback()
{
public Object doInHibernate(Session session)
{
Query query = session.getNamedQuery(queryName);
SQLQuery sqlQuery = makeQueryForDynamicTable(query,
filters, table, null, session);
if (alias != null)
{
sqlQuery.addEntity(alias, returnType);
}
return sqlQuery.list();
};
});
}
catch (Exception he)
{
log.error("", he);
throw new DataAccessException(
IDataAccessExceptionConstants.E_HIBERNATE_ERROR, he);
}
}
/**
* 功能描述:根据条件查询动态表,返回指定的对象
*
* @param queryName 命名查询名称
* @param filters 查询条件
* @param table 动态表名
* @param clazz 返回对象的类型
* @return List<?>
* @throws DataAccessException 数据库访问异常
*/
public List<?> findByDynamicTableReturnEntity(final String queryName,
final List<Filter> filters, final String table, final Class<?> clazz)
throws DataAccessException
{
try
{
return (List<?>) getHibernateTemplate().execute(
new HibernateCallback()
{
public Object doInHibernate(Session session)
{
Query query = session.getNamedQuery(queryName);
SQLQuery sqlQuery = makeQueryForDynamicTable(query,
filters, table, null, session);
if (null != clazz)
{
sqlQuery.setResultTransformer(Transformers
.aliasToBean(clazz));
}
return sqlQuery.list();
};
});
}
catch (Exception he)
{
log.error("", he);
throw new DataAccessException(
IDataAccessExceptionConstants.E_HIBERNATE_ERROR, he);
}
} |
|