与addFilter对应,J-Hi还提供了removeFilter的功能,目的是通过目标过滤器中删除曾经加进来的子过滤器
otherFilter.remove(filter); |
对字符串的操作,如果不加操作符那么系统默认采用like操作符,并且左右两侧均会加通配符,为了解决通配符的问题,J-Hi提供了
Filter likeFilter = FilterFactory.getLikeFilter("name", "马超", Filter.RELATION_AND, LikeFilter. LIKE_CONTROLER_LEFT ); |
对应的SQL语名为:name like ‘%马超’
如果对null或非null做过滤
|
对应的SQL语句分别为:propertyName IS NULL ; propertyName IS NOT NULL
如果做包含(IN)做过滤
FilterFactory.getInFilter(propertyName, coll); |
其中coll是java.util.Collection接口的对象
除此以外,J-Hi还提供了排序器
|
首先所有的排序器都必须由SorterFactory(过滤器工厂)创建,排序器可以通过addSort方法累加。也可以通过addSort方法将两个排序器连接合并在一起
具体的调用方法例如:
|
总结:J-Hi的查询过滤器并没有象Hibernate的Criteria那么的强大,还不支持外连接与聚合。原因是这种大数据量的统计对ORM框架来实现在效率上并不是好的解决方案,再者实现上述功能增加了使用者操作的复杂度。荐于以上两个原因J-Hi的查询过滤器没有实现上述功能。