园主这一阵子接到一个需求,就是将spring data jpa再进行封装,实现通过调用一个baseRepository,来实现每个类的增删改查操作,结合spring data jpa 原有的便捷操作,实现快捷开发,话不多说,上代码!
1 首先编写通用接口
package com.hhsj.repository; import com.hhsj.base.Params; import com.hhsj.base.Result; import org.springframework.data.jpa.repository.JpaRepository; import java.util.LinkedHashMap; import java.util.List; public interface baseRepository<T ,ID>{ /** * 保存数据对象 * @param entity * @return */ Boolean save(T entity); /** * 根据id查询 * @param clazz * @param id * @return */ T findByid(Class<T> clazz,ID id); /** * 根据表名,字段,参数查询,拼接sql语句 * @param clazz 表的class * @param filed 字段名 * @param o 字段参数 * @return */ List<T> findByField(Class<T> clazz, String filed, Object o); /** * 多个字段的查询 * @param clazz 表的class * @param map 将你的字段传入map中 * @return */ List<T> findByMoreFiled(Class<T> clazz,LinkedHashMap<String,Object> map); /** * 根据表的id删除数据 * @param entity */ Boolean delete(T entity); /** * 更新对象 * @param e * @return */ Boolean update(T e ,ID id); /** * 根据条件查询总条数返回object类型 * @param clazz 表的class * @param map 传入参数放入map中 * @return */ Integer findCount(Class<T> clazz, LinkedHashMap<String,Object> map); /** * 通过传入自定义参数查询 * @param clazz * @param params * @return */ List<T> findByParams(Class<T> clazz , Params params); /** * 根据id删除 * @param clazz * @param id * @return */ Boolean deleteById(Class<T> clazz, ID id); /** * 通过id集合批量删除 * @param clazz * @param ids * @return */ Boolean deleteByIds(Class<T> clazz , List<ID> ids); }