自定义查询
当查询结果无法对应到实体时(如:统计类的查询),无法使用Spring Data JPA提供的封装方法完成查询工作。开发人员只需使对应的Repository实现RepositoryEnhancer
接口,即可进行自定义的查询。
RepositoryEnhancer
提供的方法如下(暂不支持SQL):
createQuery(String):Query
createQuery(String, Class<T>):TypedQuery<T>
createNativeQuery(String):Query
createNativeQuery(String, Class<T>):Query
findByJpql(String):List
findByJpql(String, Map):List
findByJpql(String, Object[]):List
findByJpql(String, Class<T>):List<T>
findByJpql(String, Map, Class<T>):List<T>
findByJpql(String, Object[], Class<T>):List<T>
getOrderByFragment(Class<?>, Sort, Map):String
getColumnName(Class<?>, String):String
其中:createQuery
相关方法可以获取Query
对象,用户自行执行查询操作;findByJpql
使用JPQL语法进行查询。查询操作均支持Map
或者数组形式传入参数。getOrderByFragment方法可以根据Sort对象生成order by子句,getColumnName方法可以根据属性名获取对应的数据库列名。
Last updated