SpringData之repository接口详解
来源:互联网 发布:ebody哪些好看知乎 编辑:程序博客网 时间:2024/06/08 03:46
SpringData官方文档
以下是本人阅读各种大牛博客 + 官方文档总结的知识点
避免大家学习走弯路 总结如下
Repository 接口是 Spring Data 的一个核心接口,它不提供任何方法,开发者需要在自己定义的接口中声明需要的方法
与继承 Repository 等价的一种方式。@RepositoryDefinition 注解,并为其指定 domainClass 和 idClass 属性。
目前我所了解 两种方式没有区别
public interface Repository< T, ID extends Serializable> { } 仅仅是一个标识,表明任何继承它的均为仓库接口类
CrudRepository: 继承 Repository,实现了一组 CRUD 相关的方法
PagingAndSortingRepository: 继承 CrudRepository,实现了一组分页排序相关的方法
JpaRepository: 继承 PagingAndSortingRepository,实现一组 JPA 规范相关的方法
自定义的 XxxxRepository 需要继承 JpaRepository,这样的 XxxxRepository 接口就具备了通用的数据访问控制层的能力。
一: SpringData 方法定义规范
注意:注意:注意
该接口允许级联查询 -> 最好在级联的属性用 ( _ ) 来包含 否则出现同名属性 则查询同名属性 不查询级联属性!!!
二 : @Query 注解 支持JPQL以及SQL(不推荐使用SQL效率不如JDBC直连)
// 自定义JPQL传递参数查询 @Query("SELECT e FROM EMP WHRER e.eid= 1?") Emp testGetEmpById(Integer eid){}; @Query("SELECT e FROM EMP WHRER e.ename = :ename?") List<Emp> testGetEmpByName(@Param("ename")String ename){}; // 模糊查询 @Query("select e from EMP e where e.ename %?1%") List<Emp> findByUuidOrAge(String name); // 本地SQL查询 @Query(value="select count(*) from emp" ,nativeQuery=true) Long findAllEmp();
三 : @Modifying
若你想要执行DML(除增加)默认的事物管理无法达成
所以需要在repository内执方法添加该注解
并在service层调用该方法位置添加@Transactional修改调用方法
- SpringData之repository接口详解
- SpringData-4 Repository接口
- SpringData MongoDB repository 分页
- SpringData 学习(2)—— 使用注解替代继承标记接口、初步认识 Repository 接口
- SpringData 学习(6)—— 学习 Repository 接口的第 1 个子接口 CRUDRepository
- SpringData 学习(7)—— 学习 Repository 接口的第 2 个子接口 PagingAndSortingRepository
- SpringData详解
- 【SpringData】轻松愉快之玩转SpringData( 第5章 CrudRepository PagingAndSortingRespsitory JpaRepository接口)
- spring data 接口之 Repository
- SpringData中的CrudRepository接口
- SpringData中的PagingAndSortingRepository接口
- Spring data 接口之 自定义Repository 接口
- 【SpringData】轻松愉快之玩转SpringData( 第5章 JpaSpecificationExecutor接口 第6章 课程总结 )
- SpringData Jpa 入门(接口)
- SpringData之Query
- SpringData之Update
- SpringData之MongoTemplate
- SpringData
- 二分图多重匹配
- pata1081(应该是long long类型却写成int类型也会超时)
- C# Dictionary 遍历删除
- 刷紫书第四章例题(例题4-1,4-2,4-3)
- XCode8升级到Xcode9(操作系统为iOS11)后原来的工程中遇到的问题
- SpringData之repository接口详解
- 百分比中的图片问题
- Ubuntu 提示找不到命令 apt-get
- CLH锁的机制与实现
- Docker学习笔记一
- Baseball Game
- Python为adroid生成不同尺寸PNG图像
- 详述查看 MySQL 数据文件存储位置的方法
- 在Windows系统下用命令把应用程序添加到系统服务