美文网首页
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