Spring Data JPA,基础学习笔记.

时间:2022-05-25 00:36:37
P.S. 最好先学习 JPA 方面的知识....在这里使用的是 Hibernate .
也已经使用了一段时间,看什么都不如看官方文档,我这里也只是写个笔记记录一下,如果能帮助到其他人,很开心 Spring Data JPA,基础学习笔记. .算是个 demoshow 吧.这里也只写了一些我觉得比较有用的地方.其他一些使用知识,请参见官方文档:http://static.springsource.org/spring-data/data-jpa/docs/current/reference/html/

1. Spring 配置简述.

Java代码 Spring Data JPA,基础学习笔记. Spring Data JPA,基础学习笔记.Spring Data JPA,基础学习笔记.
  1. <jpa:repositories base-package="org.e.test.**.dao" entity-manager-factory-ref="entityManagerFactory" transaction-manager-ref="transactionManager" />
  2. <tx:annotation-driven transaction-manager="transactionManager" />
  3. <bean id="entityManagerFactory" class="org.springframework.orm.jpa.LocalContainerEntityManagerFactoryBean">
  4. <property name="dataSource" ref="dataSource" />
  5. <property name="jpaVendorAdapter" ref="hibernateJpaVendorAdapter" />
  6. <property name="packagesToScan">
  7. <list>
  8. <value>org.e.test.**.model</value>
  9. </list>
  10. </property>
  11. <property name="jpaProperties">
  12. <props>
  13. <prop key="hibernate.dialect">${hibernate.dialect}</prop>
  14. <prop key="hibernate.show_sql">${hibernate.show_sql}</prop>
  15. <prop key="hibernate.format_sql">true</prop>
  16. .....etc
  17. </props>
  18. </property>
  19. </bean>
  20. <bean id="hibernateJpaVendorAdapter" class="org.springframework.orm.jpa.vendor.HibernateJpaVendorAdapter">
  21. <property name="databasePlatform" value="${hibernate.dialect}" />
  22. </bean>
  23. <bean id="transactionManager" class="org.springframework.orm.jpa.JpaTransactionManager">
  24. <property name="entityManagerFactory" ref="entityManagerFactory" />
  25. </bean>


2.DAO


@Transactional 方面基本不变,该怎么用怎么用..

假设已有 Entity 类 User
Java代码 Spring Data JPA,基础学习笔记. Spring Data JPA,基础学习笔记.Spring Data JPA,基础学习笔记.
  1. @Entity
  2. @Table(name = "t_user")
  3. public class User
  4. {
  5. @Id
  6. @Column(name = "user_id")
  7. @GeneratedValue(strategy = GenerationType.AUTO)
  8. private long userId;
  9. private String username;
  10. private String password;


2.1. DAO 类.
可以继承的接口有:

CRUD 功能的接口:
CrudRepository : org.springframework.data.repository.CrudRepository<T, ID>
CRUD + 分页的接口:
PagingAndSortingRepository : org.springframework.data.repository.PagingAndSortingRepository<T, ID>

例如:
Java代码 Spring Data JPA,基础学习笔记. Spring Data JPA,基础学习笔记.Spring Data JPA,基础学习笔记.
  1. public interface UserDaoextends PagingAndSortingRepository<User, Long>



2.2 DAO 方法

已经定义了 UserDao 接口.不用实现里面的任何方法,spring 会帮你生成对应的代理类.也不用加 @Repository annotation,因为已经继承了 Repository 接口.

对于已有的方法就不做多的说明了,看了方法名就会用的.使用的时候在 Service 层注入对应的 UserDao 代理对象即可.