JPA Query.getResultList() - 以通用方式使用

2023-12-11

我正在创建一个包含多个表的复杂查询,并且需要列出结果。通常,我使用EntityManager并将结果映射到 JPA-Representation:

UserEntity user = em.find(UserEntity.class, "5");

然后我可以以用户身份访问所有值UserEntity类定义了它。但是如何访问从本机多表查询返回的字段值?我得到的是一个对象列表。到目前为止还不错,但是那个对象“是什么”呢?大批?地图?收藏? ...

//simpleExample
Query query = em.createNativeQuery("SELECT u.name,s.something FROM user u, someTable s WHERE s.user_id = u.id");
List list = query.getResultList();

//do sth. with the list, for example access "something" for every result row.

我想答案很简单,但大多数示例只是显示直接转换为 targetClass 时的用法。

PS:在示例中我当然可以使用类映射。但就我而言someTable不由 JPA 管理,因此我没有实体,也没有它的类表示,并且由于我要加入 20 个表,所以我不想创建所有类只是为了访问价值观。


一般规则如下:

  • If select包含单个表达式并且它是一个实体,那么结果就是该实体
  • If select包含单个表达式并且它是一个原语,那么结果就是该原语
  • If select包含多个表达式,则结果为Object[]包含相应的原语/实体

所以,就你的情况而言list is a List<Object[]>.

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

JPA Query.getResultList() - 以通用方式使用 的相关文章

  • 面试问题 - 在排序数组 X 中搜索索引 i,使得 X[i] = i

    昨天面试时 我被问到了以下问题 考虑一个 Java 或 C 数组X它已排序并且其中没有两个元素是相同的 如何最好地找到索引i这样该索引处的元素也是i 那是X i i 作为澄清 她还给了我一个例子 Array X 3 1 0 3 5 7 in
  • 为移动设备扩展 libgdx UI?

    眼下desktop应用程序的版本很好 按钮缩放得很好 但是当我部署到android它们很小 几乎无法使用 DesktopLauncher public class DesktopLauncher public static void mai
  • Hamcrest 泛型地狱 #2:iterable With Size 给出错误“不适用于参数”

    在 hamcrest 中 1 3 RC2 没有 JUnit 依赖项 我使用失败iterableWithSize 我有一个 扩展 Iterator参数化为Content像这样EndResult
  • JLabel.setText() 中的换行符

    使用 JLabel setText 时如何插入换行符 我尝试使用 Html 但似乎可以使其适用于 setText 仅适用于 jLabel 的初始声明 最初声明 jlabel 时的方法是 label new JLabel Hello Worl
  • 如何通过keytool命令删除已经导入的证书/别名?

    我正在尝试通过 keytool 命令删除已导入的证书 keytool delete noprompt alias initcert keystore keycloak jks 但低于异常 keytool 错误 java lang Excep
  • JSP重定向和传值

    我有一个 JSP 其中我重定向到另一个 jsp 例如 我在该jsp中没有任何其他数据 我想将值从该jsp index jsp 传递到重定向jsp login jsp 我将如何做到这一点 这里的 logonInput 是在struts con
  • 使用 ScheduledExecutorService 安排每月任务

    我想在该月的某一天的特定时间安排一项任务 每次运行之间的间隔可以设置在 1 到 12 个月之间 在java中 可以使用ScheduledExecutorService以固定的时间间隔调度任务 既然一个月的天数不固定 那么如何实现呢 提前致谢
  • JTable AutoCreateRowSorter 将数字排序为字符串

    我有一个 JTable JTable table new JTable String colNames c1 DefaultTableModel model new DefaultTableModel Integer x new Integ
  • HQL 中的日期比较(不带时间戳)

    我必须比较 hibernate hql 查询中的两个日期 我在 java bean 中使用 java util Date 并在 mysql 数据库中使用时间戳作为数据类型 select t from Task t where t modif
  • 在 Android 中使用 lambdaj

    有人尝试过在android开发中使用lambdaj库吗 当我创建一个简单的小型java应用程序时 它对我来说工作得很好 但我无法在android应用程序中使用它 UPDATE 我正在添加 lambdaj lambdaj 2 3 2 with
  • 按位非运算符

    为什么要按位运算 0 打印 1 在二进制中 不是0应该是1 为什么 你实际上很接近 在二进制中 不是0应该是1 是的 当我们谈论一位时 这是绝对正确的 然而 一个int其值为0的实际上是32位全零 将所有 32 个 0 反转为 32 个 1
  • 在 Java 和 PHP 之间加密/解密字符串

    我使用 AES 加密来加密和解密服务器端的 php 和 Android 应用程序 作为客户端 之间的字符串 PHP 中的加密字符串为 HaxRKnMxT24kCJWUXaVvqDHahzurJQK sYA4lIHql U 在 Java 中是
  • 从外部 clojar 导入/使用资源

    我想做的是将一个大文件 MIDI 声音字体 打包到一个独立的 Maven repo clojar 中 然后能够以编程方式将其拉下来并从单独的项目中使用它 事实证明 这个看似简单的任务比我想象的要复杂 理想的情况是 如果有一种方法可以直接访问
  • 用java解密AES加密文件

    我有一个使用 AES 使用 java 应用程序加密的文件 我还有一个加密的密钥文件 但我不明白如何使用密钥来解密文件 大多数教程和示例都会在一个地方创建临时随机密钥 加密文件和解密 所以 问题是如何指定解密时必须使用的密钥 EDIT 我发现
  • java3d 中的面部着色

    使用java3d 如何不在每个顶点基础上着色 而是在每个面基础上着色 我尝试学习 java3d 但我生成的 Shape3d 看起来并不符合预期 我想用不同的颜色给不同的三角形着色 但我不知道该怎么做 纹理看起来有点大材小用 而且我根本没有掌
  • 如何迭代SparseArray?

    有没有办法迭代 Java SparseArray 适用于 Android 我用了sparsearray通过索引轻松获取值 我找不到 看来我找到了解决方案 我没有正确注意到keyAt index 功能 所以我会这样做 for int i 0
  • GAE - Eclipse 中的开发服务器未更新?

    我在 Eclipse 上使用 Google AppEngine 开发服务器 我的本地网页似乎没有更新 直到我在开发服务器上进行了多次重新启动 使用 Eclipse 中的 运行 或 调试 按钮 我究竟做错了什么 基本流程是 更改 java 文
  • Android:如何以编程方式仅圆化位图的顶角?

    我目前正在使用这段代码 Override public Bitmap transform Bitmap source Bitmap result Bitmap createBitmap source getWidth source getH
  • java.lang.NoClassDefFoundError:com.google.ads.AdView

    我正在尝试将 admob 广告合并到我的应用程序中 到目前为止我已经添加了以下代码 在我的应用程序主要活动的 onCreate 方法中 adView new AdView this AdSize BANNER my code number
  • SAXParseException:找不到元素“定义”的声明

    我对 camunda 和 DMN 完全陌生 我试图在 spring boot 中运行 DMN 示例 链接在这里 https github com camunda camunda bpm examples tree master dmn en

随机推荐

  • python对象列表,根据对象属性降序排序

    我有一个对象列表 我需要按对象属性之一对其进行排序 我可以使用以下代码按升序排序 list1 sorted list1 key lambda object1 object1 fitness 但是 这按升序对列表进行排序 而我需要做的是按降序
  • MediaRecorder.ondataavailable - 数据大小始终为 0

    我正在尝试使用 Web API Media Recorder 在浏览器中录制用户的声音 在此阶段 我对录制后的音频所做的就是将其添加到音频元素的源中并进行播放 当我停止录音机时 会触发 ondataavailable 事件 但数据大小为0
  • Java 泛型 - 为什么构造函数中的这个赋值是非法的?

    为什么我在这段代码中遇到编译器错误 我如何解决它 public class Container
  • Django - ImportError:没有名为 apps 的模块

    我正在 djangoproject com 网站上尝试 Django 教程 但是当我到达执行第一个 makemigrations polls 的部分时 我不断收到此错误 导入错误 没有名为 apps 的模块 Traceback most r
  • 在 Expect 脚本中处理多个衍生进程

    这是我的预期脚本的用例 我拥有的少数几个之一 我想运行多个sed通过 ssh 命令 它就像预构建环境设置一样 我想运行这样的东西 usr bin expect set timeout 1 spawn noecho bash c ssh t
  • 如何使用命令行从私有仓库下载 GitHub Release

    GitHub 指南解释了两种授权方式 但看起来这两种方式都不适用于发布文件 后果 curl u username L o a tgz https github com company repository releases download
  • 如何在 Android 的 Unity 中将 System.IO.Stream 转换为纹理?

    我正在 Unity 中构建客户端 Android 应用程序 当它从 AWS S3 服务器下载 jpg 时 结果会以 System IO Stream 的形式返回 然而 我对 Mono 和 Net 的了解有限 这意味着我正在努力弄清楚如何将这
  • SQL 内部联接返回的行数比预期多得多

    当每个表只有 340 行时 以下查询返回 gt 7000 行 SELECT Config Spec TempTable Spec FROM Confg INNER JOIN TempTable on Config Spec TempTabl
  • 为所有用户从 VS.NET MSI 安装程序项目安装快捷方式

    我在这里搜索了又搜索 我尝试过以下方法但没有成功 将项目安装程序属性设置为 InstallforAllUsers 不记得确切的名称 但这确实会将快捷方式添加到所有用户的菜单 但只有安装该应用程序的用户才能运行它 其他用户收到 SysWOW6
  • 动画显示正在退出/被替换的路线

    我通过以下实现进行了简单的淡入淡出页面转换 return new PageRouteBuilder opaque true pageBuilder BuildContext context Animation
  • 访问API网关时缺少身份验证令牌?

    我正在尝试通过 AWS API Gateway 调用 Lambda 函数 当我提到身份验证类型 NONE 时 它工作正常 但 API 变得公开 任何拥有 url 的人都可以访问我的 API 为了使 API 调用安全 我使用身份验证类型 AW
  • 如何在 Azure 应用服务中使用 .Net Core 应用程序发布 Angular 9 Universal

    我使用 Angular 9 创建了一个 Asp NET Core Web 应用程序 我已将 Angular Universal 添加到我的应用程序中 现在我需要将我的应用程序发布到 Azure 应用程序服务中 我使用以下命令来构建应用程序
  • 支持文本路径的文本渲染库

    我需要一个良好 可靠的库或工具链 用于以编程方式将具有不同大小 字体 粗细等的文本渲染为 png 它还需要能够以弧线或路径渲染文本 我希望它能够很快 因为我会像在服务器上运行它一样 我尝试过使用 SVG 和librsvg 但这不会渲染
  • iPhone键盘返回键颜色

    我们可以改变iPhone键盘返回键颜色的颜色吗 苹果支持吗 如果是的话 你能帮我改变它吗 没有可用的公共 API 如果您使用私有 API 那么您的应用程序将在应用程序商店中被拒绝
  • 多种数据类型的列表?

    我有两个这样的课程 public class MachineLine public double X1 public double Y1 public double X2 public double Y2 public double Thi
  • 如何从 Windows Phone 7 或 8 获取用户自己的手机号码

    我想提取 用户own手机号码 不是他的整个电话簿 我使用c 作为开发语言 谢谢 如果您想获取设备自己的电话号码 目前还不可能
  • Spring Cloud Dataflow 有什么好处?

    根据我所看到的 在 Spring Cloud Dataflow SCDF 中创建流将部署底层应用程序 绑定通信服务 如 RabbitMQ 设置 Spring Cloud Stream 环境变量并启动应用程序 这一切都可以使用 cf Push
  • 在 msvc 2010 中构建 boost MPI 时出错

    我已将 openmpi 安装在 C Program Files OpenMPI v1 5 4 win32 中 并希望编译 boost 以生成图形并行库 但出现以下错误 The system cannot find the path spec
  • 如何在 React JSX 中调用 Web API?

    我正在使用 React 和 Electron 编写一个音乐播放器 并希望添加音频元数据 以便获得 MPRIS 支持 所以我做了一些搜索并发现媒体会话API是我所需要的 为了测试它 我将上述链接包含的示例代码中的代码复制到我的项目中的函数中
  • JPA Query.getResultList() - 以通用方式使用

    我正在创建一个包含多个表的复杂查询 并且需要列出结果 通常 我使用EntityManager并将结果映射到 JPA Representation UserEntity user em find UserEntity class 5 然后我可