springboot 自定义Repository
启用 JpaRepositories
package cn.xiaojf; import cn.xiaojf.today.data.rdb.repository.RdbCommonRepositoryImpl;
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.context.annotation.Bean;
import org.springframework.data.jpa.repository.config.EnableJpaRepositories;
import org.springframework.orm.jpa.vendor.HibernateJpaSessionFactoryBean; @SpringBootApplication
@EnableJpaRepositories(repositoryBaseClass = RdbCommonRepositoryImpl.class)
public class Application {
public static void main(String[] args) {
SpringApplication.run(Application.class, args);
}
}
自定义 repository 接口
package cn.xiaojf.today.data.rdb.repository; import cn.xiaojf.today.base.model.PageInfo;
import org.springframework.data.repository.CrudRepository;
import org.springframework.data.repository.NoRepositoryBean;
import org.springframework.data.repository.PagingAndSortingRepository; import java.io.Serializable;
import java.util.Collection;
import java.util.List;
import java.util.Map; /**
* 自定义 repository 接口
* @author xiaojf 2016/12/8 19:31.
*/
@NoRepositoryBean
public interface RdbCommonRepository<T, ID extends Serializable> extends CrudRepository<T, ID> { }
自定义 repository 接口实现类
package cn.xiaojf.today.data.rdb.repository; import cn.xiaojf.today.base.exception.BusinessException;
import cn.xiaojf.today.base.model.PageInfo;
import cn.xiaojf.today.base.util.BeanToMapUtil;
import cn.xiaojf.today.base.util.CamelCaseUtil;
import cn.xiaojf.today.base.util.SpringBeanUtil;
import cn.xiaojf.today.data.rdb.util.EntityUtil;
import cn.xiaojf.today.data.rdb.util.QueryDynamicLoader;
import org.apache.commons.beanutils.BeanUtils;
import org.apache.commons.lang3.StringUtils;
import org.apache.velocity.VelocityContext;
import org.apache.velocity.app.Velocity;
import org.hibernate.SQLQuery;
import org.hibernate.Session;
import org.hibernate.SessionFactory;
import org.hibernate.transform.Transformers;
import org.hibernate.validator.constraints.NotEmpty;
import org.springframework.data.jpa.repository.support.JpaEntityInformation;
import org.springframework.data.jpa.repository.support.SimpleJpaRepository;
import org.springframework.util.Assert; import javax.persistence.EntityManager;
import javax.persistence.Query;
import javax.validation.constraints.NotNull;
import java.io.Serializable;
import java.io.StringWriter;
import java.math.BigInteger;
import java.util.*; /**
* 自定义关系数据库repository
* @author xiaojf 2016/12/8 19:35
*/
public class RdbCommonRepositoryImpl<T, ID extends Serializable> extends SimpleJpaRepository<T,ID> implements RdbCommonRepository<T,ID> {
private final EntityManager entityManager;
private final JpaEntityInformation entityInformation;
private final Class<T> clazz; public RdbCommonRepositoryImpl(JpaEntityInformation<T, ?> entityInformation, EntityManager entityManager) {
super(entityInformation, entityManager);
this.entityManager = entityManager;
this.entityInformation = entityInformation;
this.clazz = entityInformation.getJavaType();
}
}
在继承了 RdbCommonRepository 接口后, springboot会自动的在相同目录寻找他的实现类,规则是RdbCommonRepository+Impl 类命名规则,也可以手动指定,此处不做多解释,可以自行百度,一般不需要自行指定,使用方式如下
package cn.xiaojf.today.sys.repository; import cn.xiaojf.today.data.rdb.repository.RdbCommonRepository;
import cn.xiaojf.today.sys.entity.SysUser; /**
* 用户 repository
* @author xiaojf 2016/12/8 19:46.
*/
public interface SysUserRepository extends RdbCommonRepository<SysUser,String> {
SysUser findFirstByUsername(String username);
}
springboot 自定义Repository的更多相关文章
- springboot2.0 JPA配置自定义repository,并作为基类BaseRepository使用
springboot2.0 JPA配置自定义repository,并作为基类BaseRepository使用 原文链接:https://www.cnblogs.com/blog5277/p/10661 ...
- Spring Data JPA: 实现自定义Repository
一.前言 由于项目中的 实体(entity)默认都是继承一个父类(包含一些公共的属性,比如创建时间,修改时间,是否删除,主键id).为了实现逻辑删除,一般会自己实现RepositoryFactoryB ...
- SpringBoot自定义拦截器实现IP白名单功能
SpringBoot自定义拦截器实现IP白名单功能 转载请注明源地址:http://www.cnblogs.com/funnyzpc/p/8993331.html 首先,相关功能已经上线了,且先让我先 ...
- SpringBoot自定义错误信息,SpringBoot适配Ajax请求
SpringBoot自定义错误信息,SpringBoot自定义异常处理类, SpringBoot异常结果处理适配页面及Ajax请求, SpringBoot适配Ajax请求 ============== ...
- SpringBoot自定义错误页面,SpringBoot 404、500错误提示页面
SpringBoot自定义错误页面,SpringBoot 404.500错误提示页面 SpringBoot 4xx.html.5xx.html错误提示页面 ====================== ...
- springboot自定义错误页面
springboot自定义错误页面 1.加入配置: @Bean public EmbeddedServletContainerCustomizer containerCustomizer() { re ...
- SpringBoot自定义Filter
SpringBoot自定义Filter SpringBoot自动添加了OrderedCharacterEncodingFilter和HiddenHttpMethodFilter,当然我们可以自定 义F ...
- springboot 自定义LocaleResolver切换语言
springboot 自定义LocaleResolver切换语言 我们在做项目的时候,往往有很多项目需要根据用户的需要来切换不同的语言,使用国际化就可以轻松解决. 我们可以自定义springboor中 ...
- SpringMVC拦截器与SpringBoot自定义拦截器
首先我们先回顾一下传统拦截器的写法: 第一步创建一个类实现HandlerInterceptor接口,重写接口的方法. 第二步在XML中进行如下配置,就可以实现自定义拦截器了 SpringBoot实现自 ...
随机推荐
- Jmeter的逻辑控制器——Controller
逻辑控制器(Logic Controller) --贯穿整个Test Plan中,与各组件执行顺序没关系:目的是用于控制采样器的执行顺序. Simple Controller Simple Contr ...
- 4 安装MPush
cnblogs-DOC 1.服务器环境 2.安装Redis3.安装Zookeeper4.安装MPush5.安装Alloc服务6.完整测试7.常见问题 一.Linux安装Mpush [root@loca ...
- angular 自定义filter
用modul.filter .filter("fiilterCity",function(){ return function(obj){ var newObj = []; ang ...
- Maven(二)之Maven项目构建演练
从上一篇的讲解中我们知道了什么是Maven,然后它的安装配置,到修改本地仓库,这篇我们用一个实际的例子,带领大家走进我们的Maven之旅.让我们一起来体验一下Maven的高度自动化构建项目的过程. 一 ...
- PHP 分支与循环
一.概述: 上面一章我们讲解了PHP当中的运算符和表达式,通过上面的知识点我们就可以完成一些基本的运算操作了.但是涉及到一些比较复杂的逻辑,分支与循环就必不可少了.通过分支和循环的结合使用可以使业务更 ...
- python自动化测试应用-番外篇--接口测试2
篇2 book-python-auto-test-番外篇--接口测试2 --lamecho辣么丑 大家好! 我是lamecho(辣么丑),今天将继续上一篇python接 ...
- Vmware Vsphere WebService之vijava 开发一-vcenter连接、及集群信息获取
开始是通过java代码调用vsphere提供的原始接口,从而控制vcenter的操作.当第一个版本做完之后发现代码执行的速度特别慢,后来在网上看到有人用vijava(对vsphere原始接口封装)编程 ...
- HNOI2017 滚粗记
这次HNOI,感觉自己收获了很多啊,高一的蒟蒻,也就是去历练一番,长长见识吧.. $day0$ 上午做了一道斜率优化的题,下午好像在颓??晚上也不想复习了,看了会电视,$12$点才睡.. $day1$ ...
- Postmark介绍
一. 引言 Postmark是由著名的NAS提供商NetApp开发,用来测试其产品的后端存储性能. Postmark主要用于测试文件系统在邮件系统或电子商务系统中性能,这类应用的特点是:需要频繁.大量 ...
- 安装hexo报错(npm WARN deprecated swig@1.4.2: This package is no longer maintained),已解决
问题:在使用npm安装hexo时报错 $ npm install -g hexo npm WARN deprecated swig@1.4.2: This package is no longer m ...