使用Spring Data JPA
使用Spring Data JPA需要在pom.xml中添加spring-boot-starter-data-jpa
依赖。
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-data-jpa</artifactId>
</dependency>
之后就可以在应用中定义Entity了,并使用javax.persistence
相关注解了。比如下面就定义了一个简单的User实体。
@Entity
@Table(name="tb_user")
@Data
public class User {
@Id
@GeneratedValue(strategy=GenerationType.IDENTITY)
private Long id;
private String name;
private String username;
}
之后可以定义自己的JpaRepository。
public interface UserJpaRepository extends JpaRepository<User, Long> {
List<User> findByName(String name);
}
如果你的目录结构是按照Spring Boot建议的目录结构,上面定义的Repository将自动被Spring Boot扫描到,并被注册为一个Spring bean。Spring Boot默认会扫描标注了@SpringBootApplication
注解的Class所在的package下面的所有的package。如果需要扫描其它目录下的Repository,则可以通过@EnableJpaRepositories("com.xxx.package")
来指定。
之后就可以在Service中注入定义好的Repository进行相应的增删改查了,比如下面这样:
@Service
public class UserService {
@Autowired
private UserJpaRepository userRepository;
public void save(User user) {
this.userRepository.save(user);
}
public void save(List<User> users) {
this.userRepository.saveAll(users);
}
public List<User> findByName(String name) {
return this.userRepository.findByName(name);
}
public Optional<User> findById(Long id) {
return this.userRepository.findById(id);
}
}
添加了spring-boot-starter-data-jpa
依赖后,默认会使用JPA的Hibernate实现。org.springframework.boot.autoconfigure.orm.jpa.HibernateJpaAutoConfiguration
将负责JPA的自动配置,其只有在bean容器中只定义了一个DataSource时才会进行自动配置。可以通过spring.jpa
前缀的配置属性配置Hibernate JPA的相关信息,对应的配置属性将由org.springframework.boot.autoconfigure.orm.jpa.JpaProperties
负责接收。可以通过spring.jpa.show-sql
指定是否需要打印SQL语句,可以通过spring.jpa.hibernate.*
指定Hibernate特定的配置信息。比如通过spring.jpa.hibernate.ddl-auto
指定是否需要基于实体配置自动应用对应的DDL语句到数据库,它相当于使用Hibernate时的hibernate.hbm2ddl.auto
。
spring.jpa.database=mysql
spring.jpa.show-sql=true
spring.jpa.hibernate.ddl-auto=update
Spring Boot会自动注册org.springframework.orm.jpa.support.OpenEntityManagerInViewInterceptor
,以便可以在Web应用中使用懒加载。如果不需要自动注册OpenEntityManagerInViewInterceptor
,则可以配置spring.jpa.open-in-view=false
。关于JPA可以配置的更多信息请参考org.springframework.boot.autoconfigure.orm.jpa.JpaProperties
的API文档。
Spring Boot默认会自动扫描Jpa Repository,如果不希望自动扫描Repository,可以配置spring.data.jpa.repositories.enabled=false
。
本文主要介绍在Spring Boot应用中如何使用Spring Data Jpa,关于Spring Data Jpa的更多应用请参考相应的文档。
(注:本文是基于Spring Boot 2.0.3所写)
相关推荐
5-Spring-Boot(五):spring data jpa的使用.docx5-Spring-Boot(五):spring data jpa的使用.docx5-Spring-Boot(五):spring data jpa的使用.docx5-Spring-Boot(五):spring data jpa的使用.docx5-Spring-Boot(五):...
Spring Boot使用spring-data-jpa配置Mysql多数据源,可用版本
该案例使用SpringBoot 整合了SPringData JPA,使用SpringData 开发简化了Dao层的开发量,简化了数据访问,使得持久化更加简单 !
NULL 博文链接:https://mixo44.iteye.com/blog/1797079
Spring Boot+Maven+Spring Data JPA+apache Shiro+Easyui实现通用用户权限管理系统
ng-spring-boot, Spring Boot Spring Data JPA AngularJS示例 采用 Spring Boot 和AngularJS的快速Prototype快速 Prototype这个例子演示了英镑 Spring Boot Spring Data JPA 和前端可以一起用来编写web应用程序的...
Spring Boot+Spring Data Jpa进...本系统使用Spring Boot架构,数据访问层采用Spring Data Jpa,安全框架采用Shiro,实现了完整权限系统,Controller方法采用Shiro注解,来实现有效的权限控制;界面采用了EasyUI技术。
Spring Boot+Jpa多数据源配置Demo,可同时支持多种数据库,不同数据库,同时支持不同数据库的JdbcTemplate
管理系统系列--基于spring boot脚手架项目,spring data jpa+Spring Boot2+bo
第四章节 Spring Boot 整合 Spring Data JPA(SpringBoot 高级)一、Spring Data JPA 介绍Spring Dat
本课程内容包括Spring简介、Spring Boot简介、安装JDK、安装Maven、第一个Spring Boot程序(使用Spring Initializr构建、Spring Boot代码讲解、安装Notepad++)、构建系统、代码、配置、三种方式运行程序、安装...
Spring Boot 系列教程 Data JPA
Spring-Boot1.52 SpringSecurity4 Spring Data Jpa 整合例子
使用 SpringBoot + SpringDataJPa 设计通用的权限管理系统,适合管理系统快速开发迭代,可用于开发模板,项目经过测试,可完美运行! 使用 SpringBoot + SpringDataJPa 设计通用的权限管理系统,适合管理系统快速...
在Spring Boot 2.x版本中可以非常轻松、快速搞定持久层的开发动作,配置比SpringBoot+MyBatis还少,偶觉得它除了执行效果不如MyBatis外,在使用效率的情况下,使用Spring Data JPA的开发速度会比较MyBatis还快。...
java运行依赖jar包
项目描述 企业的销售要进行培训,由技术人员进行辅导并考评检测培训效果,所以有了这个小系统。实现了系统的登录验证、请求拦截验证、基础...springboot + spring data jpa + layui http://localhost/ zuidaima 111111
仓库管理系统,SpringBoot+Spring Data JPA.zip仓库管理系统,SpringBoot+Spring Data JPA.zip仓库管理系统,SpringBoot+Spring Data JPA.zip仓库管理系统,SpringBoot+Spring Data JPA.zip仓库管理系统,SpringBoot...
该项目的架构搭建使用的是maven,后台是使用的是spring boot框架,数据库的CRUD使用的是注解的方式,权限管理使用的是shiro框架,前端使用的...Spring boot+spring data jpa+apache shiro+bootstrap+jquery+highcharts4
spring boot与cassandra集成,使用JPA方式。