查询部分字段的实际场景

JPA的一般用法是数据库表和实体类的对应, 查询类的时候会将所有的字段都查出来, 但是有时候存在一些只需要查询部分字段的状况,场景包括:

  1. 出于性能的考虑。数据表的字段比较多,或者存在大字段的状况, 如果把所有的查询出来, 性能势必不是很好。
  2. 出于安全的考虑。有一些特殊的字段没有必要也不希望查询出来, 比如:用户信息表, 用户的密码、手机号的敏感信息。
    对于场景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如何查询部分字段相关推荐

  1. SpringBoot使用JPA如何查询部分字段

    用过JPA的都知道,只需要继承JpaRepository 根据Jpa的函数命名规范写出接口中的函数,不需要实现,底层就可以自动解析成各种数据库的sql语句,进行增删改查等操作. 自定义简单的查询方法: ...

  2. spring data jpa 查询自定义字段,转换为自定义实体

    目标:查询数据库中的字段,然后转换成 JSON 格式的数据,返回前台. 环境:idea 2016.3.4, jdk 1.8, mysql 5.6, spring-boot 1.5.2  背景:首先建立 ...

  3. SpringBoot使用JPA多表关联动态查询指定字段

    SpringBoot使用JPA多表关联动态查询指定字段 目标需求 Maven依赖 项目结构 代码 运行结果 源码下载 目标需求 在SpringBoot中用JPA实现多表关联动态查询,并且只查询指定字段 ...

  4. JPA查询单个字段和多个字段返回类型总结

    在使用springboot中,需要使用JPQL和SQL去查询记录. 获取一整条记录,返回的类型就是对应的实体类或者实体类的集合. 当不是全部字段时,返回类型就不能是实体类了. 以下是用JPQL和SQL ...

  5. orm查询部分字段_ORM问题第2部分–查询

    orm查询部分字段 在我以前关于对象关系映射工具(ORM)的帖子中,我讨论了在处理当今常见的ORM(包括Hibernate)时遇到的各种问题. 其中包括与从POJO生成架构有关的问题,实际性能和不断出 ...

  6. jpa查询表的部分字段

    先记一下自己对jpa的理解 jpa对数据库的操作是基于对象而不是数据,即以一整张表为一个对象进行操作,而不是像mybatis那样可以具体操作到某个字段 需求 查找一张表中的部分字段的数据,jpa是以对 ...

  7. jpa常用查询方法使用总结自定义sql查询

    文章目录 一.JPA自定义查询方法 实体类 1.1 单条件查询一条数据 1.2 单条件查询多条数据 1.3 多条件查询数据 1.4 查询某一个字段 1.5 in查询 1.6 like查询 二.自定义s ...

  8. jpa分页查询_spring data jpa 居然提供了这么多查询方式!

    spring data jpa提供了多种查询方式,如下: 方法名称查询 继承Repository接口 测试代码 方法名称中支持的关键字(官方文档提供) 使用JPA命名查询 在User实体中定义jpql ...

  9. SQL Server查询某个字段存在哪些表中

    一.查询SQL Server中所有的表 SQL语句:SELECT * FROM sys.tables name列表示所有的表名. 二.查询SQL Server中所有的列 SQL语句:SELECT * ...

  10. mongodb 只查询某个字段

    查询指定字段 只查询 user_id apply_id res = col.find_one({'user_id': int(i['user_id'])},{'user_id':1,'apply_id ...

最新文章

  1. wps android x86,Android-x86 8.1-rc5 发布:PC 上的安卓系统
  2. [转]php socket编程通信
  3. linux 批量处理 dos2unix
  4. POSA2:Wrapper Facade模式
  5. restful风格案例
  6. 案例逐步演示python利用正则表达式提取指定内容并输出到csv
  7. Sobel边缘检测算法verilog实现及仿真
  8. js滑动到底部加载更多
  9. [Java基础]Junit测试
  10. eclipse启动tomcat不能正常访问问题
  11. mysql内置含糊_mySQL入门04 内置函数
  12. django 1.8 官方文档翻译:13-6 分页
  13. vs2017项目配置
  14. 自动驾驶_(无人驾驶)综述
  15. C#移除对象中的属性(model类或集合等)JObject
  16. 管理新语:别人反映问题,你要形成自己的材料
  17. vSphere 5.5 App HA学习-1、App HA概述
  18. 录制GIF动画 MAC
  19. android 热点 连接电脑上网,安卓手机做wifi热点让笔记本上网的方法
  20. 有赞订单导出的配置化实践

热门文章

  1. dcp9030cdn定影_兄弟DCP-9030CDN驱动
  2. NDK 开发之 CMake 的使用
  3. idea打包jar的多种方式(总结-共三种)
  4. window7磁盘分区
  5. [ORA-01033: ORACLE正在初始化或关闭]问题解决方案
  6. 详解Unity的几种移动方式实现
  7. FPGA编程入门:Quartus II 设计1位全加器
  8. 【exp-linux】用aplay直接播放音频文件(mp3,wav)
  9. jenkins下载插件慢解决方式
  10. Excel VBA小游戏,上班摸鱼必备