Spring Data JPA 从入门到精通~@Param用法
默认情况下,参数是通过顺序绑定在查询语句上的,这使得查询方法对参数位置的重构容易出错。为了解决这个问题,可以使用 @ Param 注解指定方法参数的具体名称,通过绑定的参数名字做查询条件,这样不需要关心参数的顺序,推荐这种做法,比较利于代码重构。
案例 4.9:根据参数进行查询。
public interface UserRepository extends JpaRepository<User, Long> {@Query("select u from User u where u.firstname = :firstname or u.lastname = :lastname")User findByLastnameOrFirstname(@Param("lastname") String lastname,@Param("firstname") String firstname);
}
案例 4.10:根据参数进行查询,top 10 前面说的 query method 关键字照样有用,如下:
public interface UserRepository extends JpaRepository<User, Long> {@Query("select u from User u where u.firstname = :firstname or u.lastname = :lastname")User findTop10ByLastnameOrFirstname(@Param("lastname") String lastname,@Param("firstname") String firstname);
}
提醒:大家通过 @Query 定义自己的查询方法时,建议也用 Spring Data JPA 的 name query 的命名方法,这样下来风格就比较统一了。
Spring Data JPA 从入门到精通~@Param用法相关推荐
- Spring Data JPA 从入门到精通~@Version处理乐观锁的问题
@Version 处理乐观锁的问题 @Version 乐观锁介绍 我们在研究 Auditing 的时候,发现了一个有趣的注解 @Version,源码如下: package org.springfram ...
- Spring Data JPA 从入门到精通~实际工作的应用场景
在实际工作中,有哪些场景会用到自定义 Repository 呢,这里列出几种实际在工作中的应用案例. 1. 逻辑删除场景 可以用到上面说的两种实现方式,如果有框架级别的全局自定义 Respositor ...
- Spring Data JPA 从入门到精通~自定义实现Repository
EntityManager 的获取方式 我们既然要自定义,首先讲一下 EntityManager 的两种获取方式. 1. 通过 @PersistenceContext 注解. 通过将 @Persist ...
- Spring Data JPA 从入门到精通~EntityManager介绍
EntityManager 介绍 我们前面已经无数次提到了,JPA 的默认 Repository 的实现类是 SimpleJpaRepository,而里面的具体实现就是调用的 EntityManag ...
- spring data jpa从入门到精通_Spring Data JPA的简单入门
前言 spring data JPA是spring团队打造的sping生态全家桶的一部分,本身内核使用的是hibernate核心源码,用来作为了解java持久层框架基本构成的样本是再好不过的选择.最近 ...
- Spring Data JPA 从入门到精通~Naming命名策略详解及其实践
Naming 命名策略详解及其实践 用 JPA 离不开 @Entity 实体,我都知道实体里面有字段映射,而字段映射的方法有两种: 显式命名:在映射配置时,设置的数据库表名.列名等,就是进行显式命名, ...
- Spring Data JPA 从入门到精通~默认数据源的讲解
默认数据源 spring.datasource.driver-class-name=com.mysql.jdbc.Driver spring.datasource.url=jdbc:mysql://1 ...
- Spring Data JPA 从入门到精通~Auditing及其事件详解
Auditing 及其事件详解 Auditing 翻译过来是审计和审核,Spring 的优秀之处在于帮我们想到了很多繁琐事情的解决方案,我们在实际的业务系统中,针对一张表的操作大部分是需要记录谁什么时 ...
- Spring Data JPA 从入门到精通~JpaSpecificationExecutor示例
新建两个实体 @Entity(name = "UserInfoEntity") @Table(name = "user_info", schema = &quo ...
最新文章
- 10-18 JS基础复习笔记
- rpc.ratatd安装过程中遇到的问题
- C#之windows桌面软件第九课:汉字串口助手
- 什么端口可以抓LINUX,linux下抓包工具
- AS3中 is,as,typeof的区别 .
- android8camera,[Android8.0/9.0/10]Camera:外接 USB 摄像头
- docker容器配置加速器
- 你不能访问此共享文件夹,因为你组织的安全策略阻止未经身份验证的来宾访问
- spring+hibernate:在applicationCOntext.XML中配置C3P0参数说明
- PHP爬虫常用技术:v8js(执行js代码)
- html流控破解脚本,tc 流控脚本
- 6.Striped64源码解析
- CCF201609-3 炉石传说 (100分)
- 为什么反向传播更加高效
- 5.参数估计——点估计与区间估计概念,置信区间的公式求法与Python实现求出结果
- 万元内买断管理软件“全家桶”还“包定制”:SaaS新风向?
- 从零开始实现C++ TinyWebServer(六)---- 这或许是你见过的最容易理解的HTTP连接
- C ++ 编程思想(卷二) 笔记
- 图像预处理 | 【附高清经典图像处理书籍下载】
- 转自 BotVS 量化平台社区 --- 如何从绩效报告中分辨出“好模型 or 坏模型”
热门文章
- 论文浅尝 - ICML2020 | 跨域对齐的图最优运输算法
- 剑指offer-python解答
- DGL_图的创建、保存、加载
- java和python对比----1:
- 基于jQuery/zepto的单页应用(SPA)搭建方案
- ASP.NET MVC中在 @RenderBody() 或者 @Html.Partial()中需要使用引入外部js,css
- Android junit单元测试
- python 加密方法总结
- 在落雨的鼓浪屿打着伞到处走走找个地方坐坐
- 微信接口开发-初级体验