http://static.springsource.org/spring-data/data-jpa/docs/current/reference/html/
1. Spring 配置简述.
<jpa:repositories base-package="org.e.test.**.dao" entity-manager-factory-ref="entityManagerFactory" transaction-manager-ref="transactionManager" />
<tx:annotation-driven transaction-manager="transactionManager" />
<bean id="entityManagerFactory" class="org.springframework.orm.jpa.LocalContainerEntityManagerFactoryBean">
<property name="dataSource" ref="dataSource" />
<property name="jpaVendorAdapter" ref="hibernateJpaVendorAdapter" />
<property name="packagesToScan">
<list>
<value>org.e.test.**.model</value>
</list>
</property>
<property name="jpaProperties">
<props>
<prop key="hibernate.dialect">${hibernate.dialect}</prop>
<prop key="hibernate.show_sql">${hibernate.show_sql}</prop>
<prop key="hibernate.format_sql">true</prop>
......etc
</props>
</property>
</bean>
<bean id="hibernateJpaVendorAdapter" class="org.springframework.orm.jpa.vendor.HibernateJpaVendorAdapter">
<property name="databasePlatform" value="${hibernate.dialect}" />
</bean>
<bean id="transactionManager" class="org.springframework.orm.jpa.JpaTransactionManager">
<property name="entityManagerFactory" ref="entityManagerFactory" />
</bean>
2.DAO
@Transactional 方面基本不变,该怎么用怎么用..
假设已有 Entity 类 User
@Entity
@Table(name = "t_user")
public class User
{
@Id
@Column(name = "user_id")
@GeneratedValue(strategy = GenerationType.AUTO)
private long userId;
private String username;
private String password;
2.1. DAO 类.
可以继承的接口有:
CRUD 功能的接口:
CrudRepository : org.springframework.data.repository.CrudRepository<T, ID>
CRUD + 分页的接口:
PagingAndSortingRepository : org.springframework.data.repository.PagingAndSortingRepository<T, ID>
例如:
public interface UserDao extends PagingAndSortingRepository<User, Long>
2.2 DAO 方法
已经定义了 UserDao 接口.不用实现里面的任何方法,spring 会帮你生成对应的代理类.也不用加 @Repository annotation,因为已经继承了 Repository 接口.
对于已有的方法就不做多的说明了,看了方法名就会用的.使用的时候在 Service 层注入对应的 UserDao 代理对象即可.
自定义方法.
例1.
根据命名规则写对应的抽象方法即可.根据 username 查找 user.只需在 UserDao 中 填写如下方法.
public List<User> findByUsername(String username);
例2.
根据两个属性查询.
public List<User> findByUsernameAndPassword(String username,String password);
附方法定义规则表:
http://static.springsource.org/spring-data/data-jpa/docs/current/reference/html/
Table 2.2. Supported keywords inside method names 部分.
例3.
锁:
可以使用 @Lock , 里面填入的是 JPA 的 LockModeType
*
@Lock(LockModeType.PESSIMISTIC_READ)
public List<User> findByUsername(String username);
对应的 sql 就是:
select * from t_user where username=? lock in share mode
*
@Lock(LockModeType.PESSIMISTIC_WRITE)
public List<User> findByUsername(String username);
对应的 sql 就是:
select * from t_user where username=? for update
例4.
分页
public List<User> findByUsername(String username, Pageable pageable);
Pageable 是一个定义分页属性的类.可以创建 Pageable 的实现类 PageRequest对象使用.
PageRequest pr = new PageRequest(int page, int size);
PageRequest pr = new PageRequest(int page, int size, Sort sort);
etc...
例5.
自己定义 query 语句.
@Query
@Query("select u from User u where u.username= ?1")
User findByUsername(String username);
分享到:
相关推荐
JPA 的全称是 Java Persistence API, 即 Java 持久化 API,是 SUN 公司推出的一套基于 ORM 的规范,内部是由一系列的接口和抽象类构成。JPA 的查询语言是面向对象而非面向... 本文档包含了JPA的课件笔记与学习标注。
综合多家视频,超全面综合笔记!Spring Data Jpa 学习
网上整理的学习笔记,对于初学者认识,文档归集还是有好处的
SpringDataJPA学习笔记
Spring面试专题及答案 SpringMVC SpringCloud SpringBoot面试笔试及答案学习笔记合集: 10个高频Spring BOOT.docx 55个Spring(7模块).docx 68spring(7个模块).docx...Spring学习笔记.xmind Spring面试专题及答案.pdf
本文是介绍Spring-data-jpa的PPT的学习笔记,整理了Spring Data JPA相关知识配置和实践源码. 本文介绍知识点有: JPA与Spring的相关配置 JPA 方法名常用查询 JPA 使用@Query注解实现JPQL和本地自定义查询 JPA API 条件...
内容: Spring资源管理 Spring表达式语言 定时调度 AOP切面编程-代理功能的加强 Spring与JMS消息组件 Spring与WebService Spring与Redis数据库 JDBC操作模板 ...SpringDataJPA SpringMVC SpringSecurity
jpa常用方法,适合新手下载学习 其中包括select/upate/delete/insert 以及in、notin、等等
Spring学习笔记...............345 第一章 Spring概述..........................345 第二章 Spring IOC(控制反转)........347 第三章 Spring AOP(面向切面编程)..........351 第四章 Spring中的数据访问.............
一步一步学SpringDataJpa——JpaRepository查询功能 - CSDN博客https://blog.csdn.net/ming070423/a
JPA学习笔记-EJB-06JPA+Spring使用经验。
Spring学习笔记...............345 第一章 Spring概述..........................345 第二章 Spring IOC(控制反转)........347 第三章 Spring AOP(面向切面编程)..........351 第四章 Spring中的数据访问.............
springboot学习笔记 spring基础 Spring概述 Spring的简史 xml配置 注解配置 java配置 Spring概述 Spring的模块 核心容器CoreContainer Spring-Core Spring-Beans ...
1、首先对Spring Boot做一个简单的介绍。 2、开发工具idea,构建工具maven。 3、然后我们会创建一个简单的Spring Boot应用程序。...1、整合Spring Data JPA 2、使用Thymeleaf模板 3、整合swagger
两万多元参加的java求职培训,名师讲课的资料,针对性强。适合初学者,求职者。
学习笔记及代码 1. 笔记 类型 笔记 Java Java基础笔记Java多线程笔记JUC笔记Java集合笔记JavaIO...springboot-demo01 [SpringBoot + Mybatis]springboot-demo02 [SpringBoot + Spring Data JPA]springboot-demo03 [Sp
8 + SpringBoot + Spring Data JPA + MySQL5 . 7 1,整个项目前端采用Semantic-UI,基于SpringBoot,分为:前台展示(首页,分类,标签,布局,站长信息,搜索详情页,博客详情页),后台管理(登录,欢迎页,博客...
SpringBoot学习笔记 1,集成mybatis并使用替换的事务配置 2,多数据源配置 ...4,使用jdbcTemplate和spring-data-jpa操作数据库 5,结合AOP实现参数验证 6,SpringBoot整合es基本操作 7,整合swagger-ui
这是一个简单的前初步分离项目,主要采用Vue.js + SpringBoot技术栈开发。 除了使用入门练习,我还希望该项目可以作为一些常见的Web项目的脚手架,帮助...1,Sprint Boot2,Spring Data + JPA 3,MySQL 4,四郎 部署
聊天室这个项目是学习慕课网上课程的代码汇总以及笔记。 MQ系列消息类别系列,内部包含自述文件 设计模式Java该项目是学习实际模式的代码记录,里面有具体的自述文件这个是博客对应的更新地址: : 弹簧启动安全...