Spring Data Jpa
Spring Data JPA是更大的Spring Data系列的一部分,它使实现基于JPA的存储库变得很容易。这个模块处理对基于JPA的数据访问层的增强支持。它使构建使用数据访问技术的spring驱动的应用程序变得更容易。
y_bccl27
这个作者很懒,什么都没留下…
展开
-
Spring Data Jpa中的save和saveAndFlush方法
Spring Data Jpa中save和saveAndFlush的区别,首先直接看图:save是CurdRepository接口下的方法saveAndFlush是JpaRepository接口下的方法一般情况下,我们仅仅使用save方法就可以满足业务需求。但是如果在同一个事务中,例如在方法上添加了@Transactional注解,我们想先保存Order(订单)数据,然后直接在这个事务中保存OrderItem(订单明细)数据,但是OrderItem需要前面所新建的Order里面的ID,这个时原创 2022-02-21 14:23:52 · 3806 阅读 · 0 评论 -
Spring Data Jpa的JpaRepository的getOne()方法查询数据实体时报错could not initialize proxy
问题描述:在使用Spring Data Jpa的getOne()方法查询数据实体时报以下错误:org.hibernate.LazyInitializationException: could not initialize proxy [com.xx.xxx.entity.TbUser#1] - no Session解决方法:出现这个问题是由于Hibernate的懒加载引起的,我们可以在对应的实体类上添加@Proxy(lazy = false)注解配置来解决这个问题import lombok..原创 2021-11-15 14:38:07 · 1196 阅读 · 0 评论 -
Spring Data Jpa的@DynamicInsert注解和@DynamicUpdate注解
当前引入的Spring Data Jpa的版本为2.4.2<dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-data-jpa</artifactId> <version>2.4.2</version></dependency>构建的数据库tb_us.原创 2021-11-15 14:27:19 · 1249 阅读 · 0 评论 -
Spring Data Jpa的@Temporal注解
@Temporal注解存在于Spring Data Jpa依赖中<dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-data-jpa</artifactId> <version>2.1.3.RELEASE</version></dependency>.原创 2021-11-09 17:20:49 · 1770 阅读 · 0 评论 -
MySQL数据库建表时对于某个字段设置了默认值,但是使用Spring Data Jpa的save后默认值没有生效
问题描述:MySQL数据库建表时对于某个字段设置了默认值,使用Spring Data Jpa的save后默认值没有生效。MySQL数据库中构建的用户表表结构如下所示:DROP TABLE IF EXISTS USER;CREATE TABLE USER( `id` INT NOT NULL AUTO_INCREMENT COMMENT '主键ID', `name` VARCHAR(25) NOT NULL COMMENT '姓名', `address` VARCHAR(25) DEFAU原创 2021-11-03 09:44:38 · 1083 阅读 · 0 评论 -
Spring Data Jpa 审计功能
Spring Data Jpa的审计功能需要引入下述依赖<dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-data-jpa</artifactId> <version>2.1.3.RELEASE</version></dependency>第一...原创 2021-07-01 14:06:34 · 320 阅读 · 0 评论 -
Spring Data Jpa 报错org.hibernate.LazyInitializationException: could not initialize proxy
问题描述:使用JPA原生API接口进行与数据库层的交互报错org.hibernate.LazyInitializationException: could not initialize proxy [com.bc.work.entity.* # 2021-05-05] - no Session解决方法:这个主要是因为在非ServiceImpl层会出现no session是因为jpa懒加载。在service层只是一个延迟加载对象(只有id,实体类的其他值都是null),到了其它层需要获取其他值时,事原创 2021-05-05 15:47:23 · 1870 阅读 · 0 评论 -
Spring Data Jpa 不打印sql参数
<dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-data-jpa</artifactId> <version>2.4.2</version></dependency>spring: jpa: show-sql: false原创 2021-05-05 08:43:14 · 1226 阅读 · 0 评论 -
Spring Data Jpa出现“Table ‘XXX.hibernate_sequence‘ doesn‘t exist”
问题描述:在使用Spring Data Jpa作为数据库持久层时,项目启动时报以下错误:“Table 'XXX.hibernate_sequence' doesn't exist”解决方法:产生这个错误是由于实体类主键自增长策略问题,需要将主键生成策略修改为如下:/** * 主键id */@GeneratedValue(strategy=GenerationType.IDENTITY)@Id@Column(name = "id")private int id;...原创 2021-03-06 11:45:31 · 1570 阅读 · 2 评论 -
Spring Data Jpa使用@Query时 报错Validation failed for query for method public abstract
问题:在使用Spring Data Jpa作为持久化层,在使用@Query注解时出现以下错误:Validation failed for query for method public abstract解决方法:这是由于在@Query注解中使用原生SQL时未将nativeQuery属性值显式设为true,@Query(nativeQuery = true,value = "select * from user where id = ?")List<User> getById(@P原创 2021-01-07 10:54:33 · 5552 阅读 · 0 评论 -
Spring Data Jpa出现Not supported for DML operations
问题描述:在使用Spring Data Jpa的注解形式去配置删除sql语句,出现了下述异常:org.springframework.dao.InvalidDataAccessApiUsageException: org.hibernate.hql.internal.QueryExecutionRequestException: Not supported for DML operationsSpring Data Jpa的注解形式去配置删除sql语句如下:@Query("delete fr原创 2020-11-12 14:12:55 · 725 阅读 · 0 评论