zoukankan      html  css  js  c++  java
  • Spring data jpa 使用技巧记录

      软件152 尹以操

    最近在用Springboot 以及Spring data jpa  ,使用jpa可以让我更方便的操作数据库,特开此帖记录使用jpa的一些小技巧。

      一、使用spring data jpa需要定义接口,并继承jpa的接口,可以根据功能的不同来继承不同的接口,主要可以继承CrudRepository,JpaRepository等,继承的接口,里需要传两个泛型参数,第一个是这个接口操作的实体类名,第二个是这个实体类的主键类型,如:CrudRepository<UserEntity,Integer> :      

      1.Repository是一个空接口,即是一个标记接口。
        2.若我们定义的接口继承了Repository,则该接口会被IOC容器识别为一个Repository Bean,纳入到IOC容器中,进而可以在该接口中定义满足一定规范的方法。IOC容器中实际存放了继承了Repository的接口的实现类,而这个实现类由spring帮助完成 。在applicationContext.xml中我们配置了springdata:这里的base-package指定了Repository Bean所在的位置,在这个包下的所有的继承了Repository的接口都会被IOC容器识别并纳入到容器中,如果没有继承Repository则IOC容器无法识别。
         3.我们也可以通过注解的方式替代继承Repository接口@RepositoryDefinition(domainClass=需要处理的实体类的类型,IdClass=逐渐的类型)。
         4.除了使用注解和继承Repository接口我们还可以继承Repository的子接口与实现类,他们的关系如下:
            Repository:仅仅是一个标识,表明任何继承它的均为仓库接口类。
            CrudRepository:继承Repository,实现了一组CRUD操作相关的方法。 PagingAndSortingRepository:继承CrudRepository,实现了一组分页排序相关的方法。
            JpaRepository:继承PagingAndSortingRepository,实现一组JPA规范的相关方法。
            自定义的XxxxRepository:需要继承JpaRepository,这样的XxxxRepository接口就具备了通用的数据访问控制层的能力。
            JpaSpecificationExecutor:不属于Repository体系,实现一组JPACriteria查询相关的方法。

      参考文章:http://blog.sina.com.cn/s/blog_74d509430102wgae.html 

      二、在这个接口中定义一些方法,这些方法可以对数据库进行操作,这些方法名可以依照JPA的命名规则来取,这样我们就可以不用写SQL语句了。具体可以百度。

      三、使用方式方法和技巧:  

        如下图:

        

        注意写原生SQL,需要在@Query注解里面加上nativeQuery = true,使用HQL则不用。

        如果该方法执行的是修改或删除操作,需要加上@Modifying注解,如图:

        

        如果查询的结果是一个对象集合,则这个方法的返回值可以写作List<EntityName>或Iterable<EntityName>,如果在SQL中用到group by分组查询,如:返回的结果是两列数据,则可以用Object[][]来接收返回的内容,如图:

        

    未完待续。

  • 相关阅读:
    Metropolis-Hastings algorithm
    Base64编码原理
    修改远程端口号
    修改数据库配置文件
    Windows 2008下系统网站运行环境的搭建
    oracle 11 g数据库卸载(方法二)
    oracle11g的安装
    oracle 11g的卸载
    软件实施的技巧
    使用命令行快速打开系统文件
  • 原文地址:https://www.cnblogs.com/hyyq/p/6964549.html
Copyright © 2011-2022 走看看