SpringDataJPA

Posted wastonhua

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了SpringDataJPA相关的知识,希望对你有一定的参考价值。

1.名词解释

JPA是 Sun官方提出的Java持久化规范
Hibernate 全自动orm框架(对象关系映射框架)。也是JPA的一种实现
SpringData简化数据库访问。并支持云服务的开源框架
SpringData JPA 是SpringData的一个模块。可以简化JPA写法,可以几乎不用写实现。包括了CRUD、分页、排序
2.注解

SpringData JPA几个重要注解
@Entity
@Id
@GenerateValue(strategy=GenerationType.AUTO)
3.Repository、CrudRepository和JpaRepository关系

技术分享图片

【选择】

>建议在通常情况下优先选择 Repository 接口。因为 Repository 接口已经能满足日常需求,其他接口能做到的在 Repository 中也能做到,彼此之间并不存在功能强弱的问题

>使用CrudRepository好处:开发者只是多写了 "Crud" 四个字母,即刻便为域对象提供了开箱即用的十个增删改查方法。但是,使用 CrudRepository 也有副作用,它可能暴露了你不希望暴露给业务层的方法。比如某些接口你只希望提供增加的操作而不希望提供删除的方法。针对这种情况,开发者只能退回到 Repository 接口,然后到 CrudRepository 中把希望保留的方法声明复制到自定义的接口中即可

>分页&排序:在继承 Repository 或 CrudRepository 的基础上,在自己声明的方法参数列表最后增加一个 Pageable 或 Sort 类型的参数,用于指定分页或排序信息即可,这比直接使用 PagingAndSortingRepository 提供了更大的灵活性。

>如果不用特殊的Jpa方法,如 flush(),saveAndFlush(),deleteInBatch(),不用JpaRepository 









以上是关于SpringDataJPA的主要内容,如果未能解决你的问题,请参考以下文章