Spring Data 之 Repository 接口
1. 介绍
Repository
是一个空接口,即是一个标记性接口;- 若我们定义的接口继承了Repository,则该接口会被IOC容器识别为一个
Repository Bean
; - 也可以通过
@RepositoryDefinition
注解,来替代继承Repository
接口;
// 源码:
public interface Repository<T, ID extends Seriallizable>{
}
// 使用继承的方式
public interface PersonRepository extends Repository<Person, Integer>{
Person getByLastName(String lastName);
}
// 使用注解替代继承
@RepositoryDefinition(domainClass=Person.class, idClass=Integer.class)
public interface PersonRepository{
Person getByLastName(String lastName);
}
2. Repository
接口的子接口
CrudRepository
:继承Repository
,实现了一组CRUD相关的方法;PagingAndSortingRepository
:继承CrudRepository,实现了一组分页排序相关的方法;JpaRepository
:继承PagingAndSotringRepository,实现一组JPA规范相关的方法;自定义的XxxRepository
:可以继承JpaRepository
;JpaSpecificationExecutor
:不属于Repository体系,实现一组 JPA Criteria 查询相关的方法;
参考资料:
Spring Data 之 Repository 接口的更多相关文章
- 关于spring data redis repository @RedisHash注解的对象上有DateTime属性字段的问题
当你save保存的时候你会发现出现StackOverflow Exception,很明显出现了无限循环,可是仅仅是一个save操作,哪里来的无限循环呢? 最终发现就是DateTime导致的,因为将对象 ...
- Spring Data 关于Repository的介绍(四)
Repository类的定义: public interface Repository<T, ID extends Serializable> { } 1)Repository是一个空接口 ...
- Spring Data:CrudRepository接口使用详情
CrudRepository中的方法 save(entity):添加一条数据 save(entities):添加多条数据entities为集合 findOne(id):根据id查询一条数据 exist ...
- Spring Data JPA 入门Demo
什么是JPA呢? 其实JPA可以说是一种规范,是java5.0之后提出来的用于持久化的一套规范:它不是任何一种ORM框架,在我看来,是现有ORM框架在这个规范下去实现持久层. 它的出现是为了简化现有的 ...
- Spring Data JPA教程, 第八部分:Adding Functionality to a Repository (未翻译)
The previous part of my tutorial described how you can paginate query results with Spring Data JPA. ...
- Spring Data JPA进阶——Specifications和Querydsl
Spring Data JPA进阶--Specifications和Querydsl 本篇介绍一下spring Data JPA中能为数据访问程序的开发带来更多便利的特性,我们知道,Spring Da ...
- Spring Data JPA初使用(转载)
我们都知道Spring是一个非常优秀的JavaEE整合框架,它尽可能的减少我们开发的工作量和难度. 在持久层的业务逻辑方面,Spring开源组织又给我们带来了同样优秀的Spring Data JPA. ...
- Spring Data JPA教程, 第三部分: Custom Queries with Query Methods(翻译)
在本人的Spring Data JPA教程的第二部分描述了如何用Spring Data JPA创建一个简单的CRUD应用,本博文将描述如何在Spring Data JPA中使用query方法创建自定义 ...
- Spring Data JPA教程, 第二部分: CRUD(翻译)
我的Spring Data Jpa教程的第一部分描述了,如何配置Spring Data JPA,本博文进一步描述怎样使用Spring Data JPA创建一个简单的CRUD应用.该应用要求如下: pe ...
随机推荐
- scala中计算的的一个小问题,超出Int.maxValue时不会报错
如果小于Int.max时他不会报错 def sumcount(str:String): Int ={ val ints = for(c <- str)yield { println(c.asIn ...
- 转载:vim的复制,删除,粘贴,块操作以及快速替换功能
掌握如下命令有什么好办法,我可以告诉你唯手熟尔!!多看多练对于VIM而言,复制,删除,粘贴的操作应该是非常多的.这次也做一个总结,关于处理VIM下的复制,删除,粘贴等操作.学会使用帮助文件,命令的帮助 ...
- alsamixer + alsactl 控制放音通道
1 使用alsamixer的gui界面配置放音(控制OUT1,OUT2的音量); 2 退出alsamixer,使用alsactl store生成配置文件,文件位于/etc/asound.state; ...
- Sql Server 语句集合
-- 判断数据库表是否存在 select count(*) from sysobjects where id=OBJECT_ID('tableName'); -- 返回 1存在,0不存在 -- 判断表 ...
- Softmax vs. Softmax-Loss VS cross-entropy损失函数 Numerical Stability(转载)
http://freemind.pluskid.org/machine-learning/softmax-vs-softmax-loss-numerical-stability/ 卷积神经网络系列之s ...
- Hive:数据仓库工具,由Facebook贡献。
Hadoop Common: 在0.20及以前的版本中,包含HDFS.MapReduce和其他项目公共内容,从0.21开始HDFS和MapReduce被分离为独立的子项目,其余内容为Hadoop Co ...
- MyBatis 本是apache的一个开源项目iBatis
MyBatis 本是apache的一个开源项目iBatis, 2010年这个项目由apache software foundation 迁移到了google code,并且改名为MyBatis .20 ...
- SSH学习三 SESSION
一.session方法 Session:由同一个IE窗体向同一个WEBAPP发的全部请求的总称,一个会话 同一个会话的多个额请求能够从前到后多个请求.??祖给孙.孙不给祖 浏览器:搜集sessionI ...
- Android SDK代理server解决国内不能更新下载问题
读者须知:本篇文章中最靠谱的是第三种方式,近期有读者反映第三种方式也不行了,以下提供一点其它途径的开源镜像网站: 国内高校的开源镜像站 中国科学技术大学(debian.ustc.edu.cn) 上海交 ...
- cocos2d怎么设置屏幕朝向?横屏 or 竖屏设置
在cocos引擎里面找了好久.没找到相关接口,网上也搜索了好久,最后发现.原来须要依据各个平台分别进行设置. android 改动项目根文件夹 proj.android\AndroidManifest ...