【Spring Data JPA】04 JPQL和原生SQL
@Transactional注解
让Spring处理事务
不需要自己每次都手动开启提交回滚
FINDONE & GETONE的区别?
findone是立即加载
getone是延迟加载,配合事务使用的
立即加载是这个方法被调用时就返回对象的值
延迟加载是在对象被调用的时候,才会执行查询来返回数值
JPQL的查询
特定查询,需要在Dao的接口方法上打上注解配置
使用JPQL的CRUD
编写测试类
@Test
public void jpql(){
Customer customer = customerDao.getCustomerByCustName("播客");
System.out.println(customer);
}
按客户名称和客户ID查询名称
接口的声明
@Query(value = "from cn.dai.entity.Customer where custId = ? and custName = ?")
public Customer getCustomerByCustIdAndCustName(Long custId,String custName);
测试类
@Test
public void jpql2(){
Customer customer = customerDao.getCustomerByCustIdAndCustName(3l, "传智播客");
System.out.println(customer);
}
结果
【注意JPQL语句的占位符顺序,声明的参数要按顺序对应才行】
或者按照新版本的占位符风格这样声明
就是显示的声明这个占位符对应的是第几个参数
按ID更新客户名称
接口声明:
@Modifying
@Query("update cn.dai.entity.Customer set custName = ?2 where custId = ?1")
public long updateCustomerByCustId(Long custId,String custName);
测试类
@Test
public void jpql2(){
Customer customer = customerDao.getCustomerByCustIdAndCustName(3l, "传智播客");
System.out.println(customer);
}
结果会这样报错
在之前的查询是不会数据库起修改作用,所以要不要事务都无所谓
但是这个JPQL是一个增删改的执行,JPA事务会强制要求事务存在,否则就会报这个事务要求异常
执行的是修改或者删除查询
解决:
在我们的测试方法上打上事务注解,【在业务层的业务方法打】
然后测试才通过了
但是数据库并没有修改,因为事务没有提交?
设置是否自动回滚【默认是自动回滚。。。】
再次执行,修改成功
使用SQL书写
测试类
结果
另外,除了实体类之外还可以使用这种Object数组的形式接收
忘了忘了,要用工具类打印
可以了
条件查询也是一样,区别不大,不需要做演示了
【Spring Data JPA】04 JPQL和原生SQL的更多相关文章
- spring data jpa 使用JPQL的方式查询
用Spring Data JPA提供的查询方法已经可以解决大部分的应用场景,但是对于某些业务来说,我们还需要灵活的构造查询条件,这时就可以使用@Query注解,结合JPQL的语句方式完成查询 @Que ...
- Spring data jpa hibernate:查询异常java.sql.SQLException: Column '列名' not found
使用spring boot,jap,hibernate不小心的错误: java.sql.SQLException: Column '列名' not found: 这句话的意思是:找不到此列 为什么会出 ...
- Spring Boot + Spring Data JPA + PostgreSQL
最近在用Java重写之前实习生用.netcore写的微信后台应用. 规定用Spring Boot框架,PostgreSQL数据库.之前一直习惯于基于XML的Spring app,也没用过Postgre ...
- spring data jpa使用原生sql查询
spring data jpa使用原生sql查询 @Repository public interface AjDao extends JpaRepository<Aj,String> { ...
- Spring Data JPA基本增删改查和JPQL查询(含完整代码和视频连接)
问题:SpringDataJPA怎么使用? 一.考察目标 主要考核SpringDataJPA的用法 二.题目分析 spring data jpa 的使用步骤(下面有具体实现细节) 1.创建maven工 ...
- Spring Boot 入门系列(二十七)使用Spring Data JPA 自定义查询如此简单,完全不需要写SQL!
前面讲了Spring Boot 整合Spring Boot JPA,实现JPA 的增.删.改.查的功能.JPA使用非常简单,只需继承JpaRepository ,无需任何数据访问层和sql语句即可实现 ...
- 干货|一文读懂 Spring Data Jpa!
有很多读者留言希望松哥能好好聊聊 Spring Data Jpa!其实这个话题松哥以前零零散散的介绍过,在我的书里也有介绍过,但是在公众号中还没和大伙聊过,因此本文就和大家来仔细聊聊 Spring D ...
- spring data jpa 全面解析(实践 + 源码分析)
前言 本文将从示例.原理.应用3个方面介绍spring data jpa. 以下分析基于spring boot 2.0 + spring 5.0.4版本源码 概述 JPA是什么? JPA (Java ...
- 实例对比 hibernate, spring data jpa, mybatis 选型参考
原文: 最近重构以前写的服务,最大的一个变动是将mybatis切换为spring data jpa,切换的原因很简单,有两点:第一.它是spring的子项目能够和spring boot很好的融合,没有 ...
- spring data jpa(一)
第1章 Spring Data JPA的快速入门 1.1 需求说明 Spring Data JPA完成客户的基本CRUD操作 1.2 搭建Spring Data JPA的开发环境 1. ...
随机推荐
- CSP-S2019 题解
做了这套题,如果是让现在的我当时去考的话应该一共可以有 450 分,格雷码,括号树,树的重心都可以做,树上的数可以有 10 分,Emiya 至少可以有 76 分, 划分也可以有 64 分.看 OIer ...
- kettle从入门到精通 第十九课 kettle 资源仓库
1.kettle 里面的资源仓库的意思就是存放转换(.ktr)或者job(.kjb)文件的地方.通过spoon客户端右上角可以进行设置资源仓库. 2.kettle的资源仓库有三种方式 1)本地文件存储 ...
- 通过 Helm Chart 部署 Easysearch
Easysearch 可以通过 Helm 快速部署了,快来看看吧! Easysearch 的 Chart 仓库地址在这里 https://helm.infinilabs.com. 使用 Helm 部署 ...
- .net执行oracle查询语句报错“指定的转换无效”解决方案
问题: .net执行oracle查询语句报错"指定的转换无效",在PL/SQL中正常: SELECT A.ID,SUM(TO_NUMBER(A.MODIFYTIME-A.UPLOA ...
- 关于excel表
对excel表的操作主要通过xlwt,xlrd模块. 创建excel表 import xlwtworkbook = xlwt.Workbook(encoding='utf-8') worksheet ...
- maven和gradle环境变量配置及idea相关的设置
1.maven 环境变量添加之后,重新打开cmd窗口,验证是否配置成功. idea File >> Settings idea配置之后的验证: 2.gradle 环境变量添加之后,重新 ...
- SM4Utils加解密demo
SM4Utils加解密demo package com.example.core.mydemo.sm4; import cn.org.bjca.utils.SM4Utils; public class ...
- 07-Python异常处理
什么是异常? Python无法正常处理程序时就会发生一个异常,这时Python就会抛出一个对象,表示这是一个错误. 必须处理异常,否则程序可能会停止运行,或者出现异常现象. 如:4/0就会抛出异常,因 ...
- Cython编译报错“numpy/arrayobject.h: No such file or directory”解决方案
问题背景 Cython是用来加速Python程序性能的一个工具,其基本使用逻辑就是将类Python代码(*.pyx扩展格式)编译成\(*.c,*.so\)动态链接库文件,然后就可以在正常的Python ...
- 【论文阅读】VDBFusion: Flexible and Efficient TSDF Integration of Range Sensor Data
Type: Sensors Year: 2022 tag: Mapping 组织: Bonn 参考与前言 论文链接:https://www.ncbi.nlm.nih.gov/pmc/articles/ ...