`

hibernate查询视图

阅读更多

   hibernate封装的分页查询接口

 

public interface EntityPageManager<T> extends EntityManager<T> {

	Page<T> pagedQueryBySimpleHsql(int pageNo, int pageSize, Map<String, String> sortMap, Map<String, Object> filterMap) throws BusinessException;
	
	Page<T> pagedQuery(int pageNo, int pageSize, Map<String, Object> filterMap) throws BusinessException;
	
	Page<T> pagedQuery(int pageNo, int pageSize, String orderBy, boolean isAsc, Map<String, Object> filterMap) throws BusinessException;
	
	Page<T> pagedQuery(int pageNo, int pageSize, Map<String, String> sortMap, Map<String, Object> filterMap) throws BusinessException;

}

 

  在controller中调用该接口的方法返回实体对应的数据

page = transAndHisManager.pagedQueryBySimpleHsql(getPageNo(), getPageSize(), sort, filterMap);

 

  有如下的情景:

  有交易表 和交易历史表,现在我要通  过pagedQueryBySimpleHsql方法返回两个表的数据。就是说,为了我要把这两个表的数据都查询一次。注意这两个表的数据结构完全相同

  这个时候,创建一个视图

create view v_transaction_history as

select t.* from adjust_power_transaction t
union
select s.* from adjust_power_transaction_his s

 

  这样就只需要查询一张表了,建一个实体,查询的时候查这个实体就可以了。

  当然,我们也可以通过写hql 和sql的方式调用。

分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics