Grails的动态查询功能是非常强劲。
我花费了2天的时间为lightpersist增加了这个java版的动态查询功能,ORM使用hibernate。
支持的方法有:
T getBy*(param...[,int start,String orderBy])
T[] findBy*(param...[,int start,int max,String orderBy])
List<T> findBy*(param...[,int start,int max,String orderBy])
Page<T> getPageBy*(param...[,int start,int max,String orderBy])
支持的操作符有:
* LessThan
* LessThanEquals
* GreaterThan
* GreaterThanEquals
* Between
* Like
* Ilike (i.e. ignorecase like)
* IsNotNull
* IsNull
* Not
* Equal(默认)
* NotEqual
* And
* Or
例:
@Dynamic(AuthorServiceImpl.class)
public interface AuthorService extends Dao<Author, String>{
@Query
Author getByName(String name);
@Query
Author[] findByNameLikeOrTextLike(String name,String text);
@Query
List<Author> findByTextIlike(String text,int startIndex,String orderBy);
@Query
Page<Author> getPageByNameLike(String name,int pageIndex,int maxResult,String orderBy);
}
lightpersist 目前是从 lightcommons 中独立出的一个子项目。