使用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所写)
相关推荐
本示例“spring boot整合JPA——demo”将演示如何在Spring Boot项目中配置和使用JPA。 首先,我们需要理解Spring Boot与JPA的关系。Spring Boot是基于Spring框架的快速开发工具,它通过自动化配置减少了常规设置...
通过使用Spring Data JPA,开发者可以避免编写大量的JPA(Java Persistence API)和SQL代码,专注于业务逻辑。本笔记将深入探讨Spring Data JPA的核心概念、功能以及如何在实际项目中应用。 首先,我们需要理解JPA...
本教程将深入探讨如何在Spring Boot项目中整合Spring Data JPA,实现高效且简洁的数据持久化。 首先,Spring Boot整合Spring Data JPA的基础是引入相关的依赖。在`pom.xml`或`build.gradle`文件中,我们需要添加...
综合上述信息,我们可以创建一个Spring Boot应用,使用Spring Data JPA进行数据持久化,Spring Security负责应用的安全管理,达梦数据库作为后端数据存储,FreeMarker处理前端展示,最后通过Assembly插件将整个项目...
在Spring Boot应用中,使用`spring-data-jpa`来配置MySQL多数据源是一项常见的需求,尤其是在构建大型分布式系统时,为了实现数据隔离、负载均衡或读写分离等目的。本教程将详细介绍如何在Spring Boot项目中配置多个...
总结起来,Spring Boot与Spring Data JPA的结合使用能够帮助开发者快速、高效地处理数据库操作。通过声明式的方法,我们可以专注于业务逻辑,而不是底层的SQL。同时,结合Eureka这样的服务注册与发现组件,可以在...
- Spring Data JPA可以无缝地与Spring Boot、Spring MVC、Spring Transaction管理等组件集成,为开发者提供了完整的解决方案,降低了系统的复杂性。 然而,尽管Spring Data JPA带来了诸多便利,但在实际使用中也会...
本项目基于"Spring Boot+Maven+Spring Data JPA+apache Shiro+Easyui",这些技术栈的选择旨在简化开发过程,提供强大的功能,并确保系统的安全性和用户体验。 1. **Spring Boot**: Spring Boot是Spring框架的简化版...
Spring Boot结合JPA(Java Persistence API)和JdbcTemplate,为开发者提供了灵活且强大的多数据源配置能力。本示例将详细介绍如何在Spring Boot项目中实现这样的配置,以支持不同类型的数据库。 首先,我们要理解...
《Spring Data JPA从入门到精通》是一本深入解析Spring Data JPA的书籍,它以Spring Boot框架为核心,旨在帮助读者全面理解并熟练运用Spring Data JPA进行数据库操作。Spring Data JPA是Spring Framework的一个模块...
通过学习这个项目,你可以了解到如何使用Spring Boot搭建一个完整的管理系系统,理解Spring Data JPA如何简化数据库操作,以及如何通过BO模式来组织业务逻辑。此外,你还将有机会实践项目的构建、测试和部署流程,...
2. 引入依赖:在`pom.xml`或`build.gradle`文件中添加Spring Boot的 Starter Web、Starter Data JPA以及Spring Data Redis的依赖。 3. 配置JPA:在Spring Boot的配置文件中,设置JPA的实体扫描路径、数据库方言、...
ng-spring-boot, Spring Boot Spring Data JPA AngularJS示例 采用 Spring Boot 和AngularJS的快速Prototype快速 Prototype这个例子演示了英镑 Spring Boot Spring Data JPA 和前端可以一起用来编写web应用程序的...
**Spring Boot 系列教程 Data JPA** Spring Boot 是一个基于 Spring 框架的快速开发工具,它简化了配置和启动...通过学习这个系列教程,你将全面掌握如何在 Spring Boot 应用中有效地使用 Data JPA 进行数据持久化。
Spring Boot+Spring Data Jpa进...本系统使用Spring Boot架构,数据访问层采用Spring Data Jpa,安全框架采用Shiro,实现了完整权限系统,Controller方法采用Shiro注解,来实现有效的权限控制;界面采用了EasyUI技术。
通过这个“Spring Data JPA Demo”,我们可以学习如何在Spring Boot 应用中快速地搭建数据访问层,利用其强大的功能简化开发,提高效率。同时,了解Spring Data JPA 如何与Hibernate 配合工作,以及如何处理复杂的...
本课程内容包括Spring简介、Spring Boot简介、安装JDK、安装Maven、第一个Spring Boot程序(使用Spring Initializr构建、Spring Boot代码讲解、安装Notepad++)、构建系统、代码、配置、三种方式运行程序、安装...
在开发Web应用时,Spring Boot和Spring Data JPA是常用的技术框架,它们简化了数据库操作和前后端交互。本教程将详细介绍如何在Spring Boot项目中集成Spring Data JPA,实现CRUD(创建、读取、更新、删除)操作,并...
**SpringBoot整合SpringData JPA** 是一个现代Java开发中的常见技术栈,它结合了Spring Boot的便捷性和Spring Data JPA的数据访问效率。Spring Boot简化了应用的初始搭建以及配置,而Spring Data JPA则是Spring ...
- **环境搭建**:在 Maven 项目中添加相关依赖,包括 `spring-boot-starter-data-jpa`、数据库驱动(如 MySQL)、连接池(如 Druid),以及 Spring Boot 的父依赖 `spring-boot-starter-parent` 以统一版本管理。...