JPA如何查询部分字段
查询部分字段的实际场景
JPA的一般用法是数据库表和实体类的对应, 查询类的时候会将所有的字段都查出来, 但是有时候存在一些只需要查询部分字段的状况,场景包括:
- 出于性能的考虑。数据表的字段比较多,或者存在大字段的状况, 如果把所有的查询出来, 性能势必不是很好。
- 出于安全的考虑。有一些特殊的字段没有必要也不希望查询出来, 比如:用户信息表, 用户的密码、手机号的敏感信息。
对于场景1, 虽然可以使用字段懒加载的方式进行改善; 方式2 也可以查询出来之后再进行一层封装;但是这些处理方式都相对繁琐。是否有更简洁的方式呢?
方案探求
接下来开始方案的探求之路。
是否可以直接在JPQL语句中指定需要的字段就可以了呢?
这里演示需要创建了一张表和对应的实体类,包括3个字段: id,name,pass ,现在只查询id和name 两个属性,代码类似:
String hql = "select u.name,u.id from Usr u";List<Usr> list = entityManager.createQuery(hql,Usr.class).getResultList();
事实证明是不可行的, 会报如下错误:
java.lang.IllegalArgumentException: Cannot create TypedQuery for query with more than one return using requested result type [com.osxm.jpa.entity.Us
JPA如何查询部分字段相关推荐
- SpringBoot使用JPA如何查询部分字段
用过JPA的都知道,只需要继承JpaRepository 根据Jpa的函数命名规范写出接口中的函数,不需要实现,底层就可以自动解析成各种数据库的sql语句,进行增删改查等操作. 自定义简单的查询方法: ...
- spring data jpa 查询自定义字段,转换为自定义实体
目标:查询数据库中的字段,然后转换成 JSON 格式的数据,返回前台. 环境:idea 2016.3.4, jdk 1.8, mysql 5.6, spring-boot 1.5.2 背景:首先建立 ...
- SpringBoot使用JPA多表关联动态查询指定字段
SpringBoot使用JPA多表关联动态查询指定字段 目标需求 Maven依赖 项目结构 代码 运行结果 源码下载 目标需求 在SpringBoot中用JPA实现多表关联动态查询,并且只查询指定字段 ...
- JPA查询单个字段和多个字段返回类型总结
在使用springboot中,需要使用JPQL和SQL去查询记录. 获取一整条记录,返回的类型就是对应的实体类或者实体类的集合. 当不是全部字段时,返回类型就不能是实体类了. 以下是用JPQL和SQL ...
- orm查询部分字段_ORM问题第2部分–查询
orm查询部分字段 在我以前关于对象关系映射工具(ORM)的帖子中,我讨论了在处理当今常见的ORM(包括Hibernate)时遇到的各种问题. 其中包括与从POJO生成架构有关的问题,实际性能和不断出 ...
- jpa查询表的部分字段
先记一下自己对jpa的理解 jpa对数据库的操作是基于对象而不是数据,即以一整张表为一个对象进行操作,而不是像mybatis那样可以具体操作到某个字段 需求 查找一张表中的部分字段的数据,jpa是以对 ...
- jpa常用查询方法使用总结自定义sql查询
文章目录 一.JPA自定义查询方法 实体类 1.1 单条件查询一条数据 1.2 单条件查询多条数据 1.3 多条件查询数据 1.4 查询某一个字段 1.5 in查询 1.6 like查询 二.自定义s ...
- jpa分页查询_spring data jpa 居然提供了这么多查询方式!
spring data jpa提供了多种查询方式,如下: 方法名称查询 继承Repository接口 测试代码 方法名称中支持的关键字(官方文档提供) 使用JPA命名查询 在User实体中定义jpql ...
- SQL Server查询某个字段存在哪些表中
一.查询SQL Server中所有的表 SQL语句:SELECT * FROM sys.tables name列表示所有的表名. 二.查询SQL Server中所有的列 SQL语句:SELECT * ...
- mongodb 只查询某个字段
查询指定字段 只查询 user_id apply_id res = col.find_one({'user_id': int(i['user_id'])},{'user_id':1,'apply_id ...
最新文章
- wps android x86,Android-x86 8.1-rc5 发布:PC 上的安卓系统
- [转]php socket编程通信
- linux 批量处理 dos2unix
- POSA2:Wrapper Facade模式
- restful风格案例
- 案例逐步演示python利用正则表达式提取指定内容并输出到csv
- Sobel边缘检测算法verilog实现及仿真
- js滑动到底部加载更多
- [Java基础]Junit测试
- eclipse启动tomcat不能正常访问问题
- mysql内置含糊_mySQL入门04 内置函数
- django 1.8 官方文档翻译:13-6 分页
- vs2017项目配置
- 自动驾驶_(无人驾驶)综述
- C#移除对象中的属性(model类或集合等)JObject
- 管理新语:别人反映问题,你要形成自己的材料
- vSphere 5.5 App HA学习-1、App HA概述
- 录制GIF动画 MAC
- android 热点 连接电脑上网,安卓手机做wifi热点让笔记本上网的方法
- 有赞订单导出的配置化实践