202108-25 spring data jpa如何只查询实体部分字段 需求现在有一张article表,用来储存文章,对应的实体类如下:packagecom.qianyucc.blog.model;importlombok.*;importjavax.persistence.*;/***@authorlijing*@date2019-08-0514:28*@description文章*/@Data@Entity@Table(name="article")publicclassArticle{@Id//主键自增@GeneratedValue(strategy=GenerationType.IDENTITY)privateLongid;@Column(name="author",unique=false,nu... 继续阅读 >
202108-25 spring data jpa 查询自定义字段,转换为自定义实体方式 目标:查询数据库中的字段,然后转换成JSON格式的数据,返回前台。环境:idea2016.3.4,jdk1.8,mysql5.6,spring-boot1.5.2背景:首先建立entity映射数据库(非专业java不知道这怎么说)@Entity@Table(name="user")publicclassUser{@Id@GeneratedValue(strategy=GenerationType.AUTO)privateLongid;privateStringuserName;//账号privateStringpassword;//密码//get... 继续阅读 >
202108-25 解决spring data jpa 批量保存更新的问题 springdatajpa批量保存更新问题使用jpa批量保存时,看日志发现是一条一条打印的,然后去看了下源码,果然是循环调用的单个保存(巨坑啊)经查询jpa是可以实现批量保存更新的,具体设置如下:spring.jpa.properties.hibernate.jdbc.batch_size=500spring.jpa.properties.hibernate.jdbc.batch_versioned_data=truespring.jpa.properties.hibernate.order_inserts=truespring.jpa.properties.hibernate.order_updates=true其中:... 继续阅读 >
202108-23 Spring Data JPA 关键字Exists的用法说明 SpringDataJPA关键字Exists查询数据库中的此数据是否已存在:例子:查询sys_user表中的一个user是否存在,类SysUser对应的是数据库中的sys_user表,SysUserId是表sys_user的主键类(ID类)。如果查询一个user,user的accountNo为demo。userID为demo1,表sys_user的主键是accountNo和userID,下面代码中的方法是查询这个user是否存在,如果存在则返回true,不存在则返回false。@RepositorypublicinterfaceSysUserRepositoryex... 继续阅读 >
202108-23 Spring Boot JPA Repository之existsBy查询方法失效的解决 引言:SpringBoot号称微服务的利器,在结合了SpringData与JPA之后,更是如虎添翼,开发快速的不像话,本文将讲述一个关于JPA中一个诡异问题的诊断分析过程以及修复方法。环境介绍JDK1.8Spring4.2SpringBoot1.5.9问题描述在SpringData中的Repository接口中创建了一个检查数据是否存在的接口方法:@RepositorypublicinterfaceVideoEntityRepositoryextendsJpaRepository<VideoEntity,Long>{........publicb... 继续阅读 >
202108-22 解决springboot的JPA在Mysql8新增记录失败的问题 springboot的JPA在Mysql8新增记录失败springboot版本是1.3.0.M1,连接的mysql版本为8,用spring-boot-starter-data-jpa操作数据库,新增记录时应用抛出以下异常:2018-02-2112:52:59.471DEBUG6408---[nio-9090-exec-1]o.s.web.servlet.DispatcherServlet:Couldnotcompleterequestorg.springframework.orm.jpa.JpaSystemException:couldnotexecutestatement;nestedexceptionisorg.hibernate.exception.Ge... 继续阅读 >
202107-01 Springboot+Thymeleaf+Jpa实现登录功能(附源码) 目录前言具体实现配置文件application.yml的代码Po(实体)层代码(User.java)Dao(数据库操作)层代码(UserDao.java)Service(服务)层代码验证码功能前言最近有学习到关于Springboot+Thymeleaf+Jpa的综合运用知识,因此想写一个简单的登录界面来尝试一下,以下将展示具体流程具体实现首先要创建一个springboot项目添加以下依赖项pom.xml代码<?xmlversion="1.0"encoding="UTF-8"?><projectxmlns="http://maven.apache... 继续阅读 >
202102-01 在Spring Data JPA中引入Querydsl的实现方式 一、环境说明基础框架采用SpringBoot、SpringDataJPA、Hibernate。在动态查询中,有一种方式是采用Querydsl的方式。二、具体配置1、在pom.xml中,引入相关包和配置插件。(1)引入包(注:不需要版本号,SpringBoot会自动匹配合适的版本)<!--Querydsl相关包--><dependency><groupId>com.querydsl</groupId><artifactId>querydsl-jpa</artifactId></dependency><dependency><groupId>com.querydsl</groupId>... 继续阅读 >
202102-01 JPA自定义对象接收查询结果集操作 最近使用JPA的时候,碰到需要自定义查询结果集的场景,网上搜了一下,都是需要自定义方法写一大串代码实现的,太繁琐了,有那时间还不如用mybaits。用JPA就是要尽量通过声明接口解决持久层问题,要不然鬼用。逼得没办法去了官网看看文档,再没有就放弃了,没时间看源码。最终找到我想要的结果了。例如,传统的JPA接口实现如下所示:classPerson{@IdUUIDid;Stringfirstname,lastname;Addressaddress;staticclassAddr... 继续阅读 >
202102-01 Springboot JPA 枚举Enum类型存入到数据库的操作 1、使用JPA的@Enumerated注解,可以直接将Enum映射到数据库中。但是value的值只有两种方式选择,一种是使用枚举的序号映射,一种是枚举的名称来映射。publicenumEnumType{/**Persistenumeratedtypepropertyorfieldasaninteger.*/ORDINAL,/**Persistenumeratedtypepropertyorfieldasastring.*/STRING}如果想存入枚举中的自定义的值,则需要实现AttributeConverter接口2、实现AttributeConverter接口... 继续阅读 >
202102-01 Jpa 实现自动更新表中的创建日期和修改时间 一般来说创建时间和修改时间两个字段是一个实体类必备的。在阿里Java开发手册中也对此的说明:【强制】表必备三字段:id,create_time,update_time。说明:其中id必为主键,类型为bigintunsigned、单表时自增、步长为1。create_time,update_time的类型均为datetime类型,前者现在时表示主动式创建,后者过去分词表示被动式更新。mysql实现添加时间自动添加更新时间自动更新在JPA中也是支持新的数据保存是自动写入创建... 继续阅读 >
202102-01 解决springjpa的局部更新字段问题 问题描述:使用springjpa更新数据时,有时候我们需要更新部分字段,对已有的内容保持不变,通常我们可以通过Spring提供的bean工具类BeanUtils来实现解决方法:BeanUtils复制对象,BeanUtils中的构造方法属性中可以通过传入更新时忽略的属性值来实现选择性复制原对象的字段。更新部分字段时,我们仅需要传入复制后的字段即可。解析和实现:BeanUtils的构造方法:具体更新部分字段的步骤:查询出待更新对象的原有信息通过传入的更新... 继续阅读 >
202102-01 SpringBoot2 Jpa 批量删除功能的实现 前台处理首先前台先要获取所有的要删除数据的ID,并将ID拼接成字符串例如:2,3,4,5,然后通过GET请求返送到后台。后台处理控制器接收/***@function批量删除*@paramstu_id*@return*/@GetMapping("/del_stu")@ResponseBodypublicMsgbatch_del_stu(@RequestParam("stu_id")Stringstu_id){//接收包含stuId的字符串,并将它分割成字符串数组String[]stuList=stu_id.split(",");//将字符串数组转为List<Intger>类... 继续阅读 >
202102-01 springboot 之jpa高级查询操作 springboot的jpa可以根据方法名自动解析sql非常方便,只需要在dao接口中定义方法即可;下面是一个demopackagecom.bus365.root.dao;importjava.io.Serializable;importjava.util.List;importorg.springframework.data.jpa.repository.JpaRepository;importorg.springframework.data.jpa.repository.JpaSpecificationExecutor;importorg.springframework.data.jpa.repository.Query;importorg.springframework.data.repos... 继续阅读 >
202102-01 SpringBoot2 JPA解决懒加载异常的问题 jpa解决懒加载异常在我上一遍文章上进行行修改,SpringBoot2实现JPA分页和排序分页实体类上改:@Entity@Table(name="employee")@JsonIgnoreProperties(value={"hibernateLazyInitializer","department"})publicclassEmployee{@Id@GeneratedValue(strategy=GenerationType.IDENTITY)privateIntegerempId;privateStringlastName;privateStringemail;@Temporal(TemporalType.DATE)privateDatebirth;@Tempora... 继续阅读 >
202102-01 SpringBoot2 实现JPA分页和排序分页的案例 分页application.ymlspring:datasource:url:jdbc:mysql://127.0.0.1/jpa?useUnicode=true&characterEncoding=utf-8&useSSL=falseusername:rootpassword:123456driver-class-name:com.mysql.jdbc.Driverjpa:hibernate:#更新或者创建数据表结构ddl-auto:update#控制台显示SQLshow-sql:trueproperties:hibernate.format_sql:true实体类@Entity@Table(name="employee")publicclassEmployee{@Id@Gen... 继续阅读 >