美文网首页
Spring-data

Spring-data

作者: 一直想上树的猪 | 来源:发表于2020-01-02 19:55 被阅读0次

    一、Repository

    Repository类的定义:

    public interface Repository<T, ID extends Serializable> {
    
    }
    

    二、Repository接口详解

    1)Repository是一个空接口,标记接口
    没有包含方法声明的接口

    2)如果我们定义的接口EmployeeRepository extends Repository,就会被spring所管理

    如果我们自己的接口没有extends Repository,运行时会报错:

    org.springframework.beans.factory.NoSuchBeanDefinitionException: No qualifying bean of type 'com.tinner.repository.EmployeeRepository' available
    

    3) 添加注解能到达到不用extends Repository的功能

    @RepositoryDefinition(domainClass = Employee.class, idClass = Integer.class)
    

    三、Repository的子接口

    • CrudRepository:继承Repository,实现了CRUD相关的方法
    • PagingAndSortingRepository:继承CrudRepository,实现了分页排序相关的方法
    • JpaRepository:继承PagingAndSortingRepository,实现JPA规范相关的方法

    四、弊端

    对于按照方法命名规则来使用的话,有弊端:

    • 方法名会比较长: 约定大于配置
    • 对于一些复杂的查询,是很难实现

    五、@Query注解

    • 使用这个注解可以支持原生sql。
    • 加了nativeQuery = true后,sql为原生sql,不加nativeQuery = true时,sql语句中from写的是entity名称,加了nativeQuery = true后sql就是原生的数据库中的写法,from后写的是表名。要注意的是写原生态的sql得到的结果如果是model,需要进行转换,否则会出现转换异常~

    六、事务在Spring data中的使用:

    • 事务一般是在Service层,@Transactional放在service层
    • @Query、 @Modifying、@Transactional的综合使用

    七、相关代码

    相关代码链接:https://github.com/jinping-dev/spring-data

    相关文章

      网友评论

          本文标题:Spring-data

          本文链接:https://www.haomeiwen.com/subject/iloooctx.html