`
suene
  • 浏览: 35609 次
社区版块
存档分类
最新评论

Spring Data JPA,基础学习笔记.

    博客分类:
  • java
阅读更多
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);
2
5
分享到:
评论
1 楼 longfor5 2012-12-28  
对这个功能不太了解,要是能分析一下它的用途、应用场景及优缺点就更好了。哎,奢望太多了~

相关推荐

    Spring-data-jpa 学习笔记.docx

    ### Spring-data-jpa 学习笔记 #### 一、spring-data-jpa的简单介绍 Spring Data JPA 是 Spring Data 的一部分,它简化了基于 Java Persistence API (JPA) 的数据访问层开发工作。Spring Data 旨在减少数据访问层...

    Spring Data JPA笔记.zip

    JPA 的全称是 Java Persistence API, 即 Java 持久化 API,是 SUN 公司推出的一套基于 ORM 的规范,内部是由一系列的接口和抽象类构成。JPA 的查询语言是面向对象而非面向... 本文档包含了JPA的课件笔记与学习标注。

    超全面综合笔记!Spring Data Jpa 学习

    综合多家视频,超全面综合笔记!Spring Data Jpa 学习

    SpringDataJPA.md

    SpringDataJPA学习笔记

    Spring面试专题及答案 SpringMVC SpringCloud SpringBoot面试笔试及答案学习笔记合集.zip

    Spring面试专题及答案 SpringMVC SpringCloud SpringBoot面试笔试及答案学习笔记合集: 10个高频Spring BOOT.docx 55个Spring(7模块).docx 68spring(7个模块).docx...Spring学习笔记.xmind Spring面试专题及答案.pdf

    优秀实践分享 Spring Data JPA2

    本文是介绍Spring-data-jpa的PPT的学习笔记,整理了Spring Data JPA相关知识配置和实践源码. 本文介绍知识点有: JPA与Spring的相关配置 JPA 方法名常用查询 JPA 使用@Query注解实现JPQL和本地自定义查询 JPA API 条件...

    spring-data-JPA学习笔记

    在"spring-data-JPA学习笔记"中,我们主要关注的是如何使用JPA进行CRUD操作以及一些常用的查询方法。 首先,Spring Data JPA 提供了一种基于方法名的自动查询映射机制。例如,`findByUsernameAndPassword(String ...

    基于Spring面试专题及答案 SpringMVC SpringCloud SpringBoot面试笔试及答案学习笔记合集

    基于Spring面试专题及答案 SpringMVC SpringCloud SpringBoot面试笔试及答案学习笔记合集(10个): 10个高频Spring BOOT.docx 55个Spring(7模块).docx ...Spring学习笔记.xmind Spring面试专题及答案.pdf

    《深入理解Spring Cloud与微服务构建》学习笔记(五)~SpringBoot 整合 JPA

    在本篇《深入理解Spring Cloud与微服务构建》的学习笔记中,我们将重点探讨Spring Boot如何与Java Persistence API (JPA)进行整合,从而实现高效、便捷的数据库操作。Spring Boot以其快速开发特性,大大简化了应用...

    Spring学习笔记.zip

    Spring Data支持多种持久化技术,包括JPA(Java Persistence API)、MongoDB等,提供了统一的API和CRUD操作,以及强大的查询构造器。 **Spring Security** Spring Security是Spring生态中的安全框架,它提供了认证...

    spring整合Hibernate学习笔记.docx

    在本学习笔记中,我们将深入探讨如何实现这一整合,以及 Spring 中用于简化 Hibernate 操作的 HibernateTemplate 类。 首先,Spring 作为一款全面的后端框架,它提供了 IoC(Inversion of Control,控制反转)和 ...

    2.0jpa查询学习笔记1

    在本文中,我们将深入探讨Spring Data JPA中的JpaRepository查询功能。Spring Data JPA是Spring框架的一个模块,它简化了与Java Persistence API (JPA)的交互,提供了强大的数据访问抽象,使得数据库操作变得更加...

    spring-data的学习笔记

    ### SpringData知识点详解 #### SpringData简介 SpringData是Spring框架下的一个重要子项目,它的主要目标是为开发者提供一种统一的方式来访问不同的数据存储系统。通过SpringData,开发者能够以一致的方式处理不同...

    Spring Boot核心技术 - 笔记.rar

    对于数据库操作,Spring Boot Starter Data JPA提供了与各种ORM框架(如Hibernate)集成的能力。通过配置数据源和实体类,可以轻松实现CRUD操作,并利用Spring Data JPA的查询方法。 **九、Spring Boot Actuator...

    spring学习笔记共10页.pdf.zip

    这份"spring学习笔记共10页.pdf.zip"压缩包文件,显然包含了关于Spring框架的详细学习资料,可能是由一位经验丰富的开发者或教师精心整理的。在10页的笔记中,我们可以期待涵盖Spring框架的基础概念、核心特性以及...

    PL_Java_Spring框架_学习笔记.xmind

    内容: Spring资源管理 Spring表达式语言 定时调度 AOP切面编程-代理功能的加强 Spring与JMS消息组件 Spring与WebService Spring与Redis数据库 JDBC操作模板 ...SpringDataJPA SpringMVC SpringSecurity

    2小时学会Spring Boot 学习笔记.rar

    总结来说,"2小时学会Spring Boot 学习笔记"涵盖的内容广泛,从基础的Spring Boot入门到进阶的Spring Cloud应用。通过这个学习资源,初学者不仅可以了解这两个框架的基本概念,还能通过实践项目加深理解,掌握在...

    Spring5框架课堂笔记.7z

    这份"Spring5框架课堂笔记.7z"压缩包包含了深入理解Spring5框架的关键知识点,帮助学习者系统地掌握这一强大的框架。以下是笔记中可能涵盖的主要内容: 1. **Spring概述**:Spring是一个开源的Java平台,它简化了...

    Spring Boot 学习笔记完整教程.docx

    这个学习笔记的完整教程将涵盖多个关键领域,帮助开发者深入理解和使用 Spring Boot。 1. **Spring Boot 教程** - **基础入门**:了解 Spring Boot 的核心理念,包括自动配置、起步依赖和独立运行的特性。 - **...

    Spring Boot 学习笔记完整教程.pdf

    ### Spring Boot 学习笔记知识点 #### 1. Spring Boot 简介 Spring Boot 是由 Pivotal 团队提供的全新框架,其设计目的是用来简化新Spring应用的初始搭建以及开发过程。它使用了特定的方式来配置Spring,使得开发者...

Global site tag (gtag.js) - Google Analytics