Hibernate 5 和类型化标准查询 (JPA2)

2024-01-14

问题:

1) 如果我从 Hibernate 4.x 升级到 Hibernate 5.x,我是否仍然可以使用“旧”条件查询,或者仅使用新的条件查询TypedJPA2 标准查询?旧的是否已被弃用,或者我可以同时使用两者吗?

2)我是否正确理解新的类型标准迫使我创建第二个类each我有实体类,因此重复了多个类?我应该手动创建这些类吗?如果没有,怎么办? Rant:必须重复课程似乎很奇怪,所以我一定是在某种程度上误解了它?这不是太过分而且不必要的复杂吗?


  1. 不,旧的标准 API 并未被弃用。看看javadoc http://docs.jboss.org/hibernate/orm/5.1/javadocs/org/hibernate/SharedSessionContract.html#createCriteria-java.lang.Class-:没有弃用警告。但我建议坚持使用标准 JPA API,而不是将标准 JPA API 与专有的 Hibernate API 混合使用。

  2. 不,它不会强迫你。您仍然可以使用字符串标识符。但如果类型安全是目标,则强烈建议使用元模型类。

当然,您不需要手动生成这些。它们是由注释处理器 https://docs.jboss.org/hibernate/orm/5.0/topical/html/metamodelgen/MetamodelGenerator.html,来自您的实体类及其映射注释。你可能会觉得很奇怪,但使用起来更安全root.get(MyEntity_.firstName) than root.get("firstName"):在编译时检测到拼写错误,并且如果将该字段重构为firstname,编译器会生成错误而不是让你使用旧的"firstName"字符串标识符。

我仍然发现 JPQL 查询更容易编写、理解和维护,并且只有在必须基于多个...条件生成动态查询时才会使用条件 API。使用自动化测试来检查查询是否正确。顺便说一句,即使使用条件查询,也可以执行相同的操作。

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

Hibernate 5 和类型化标准查询 (JPA2) 的相关文章

  • 如果测试用例失败,Selenium Web 驱动程序无法关闭 Firefox 实例

    我各位 我正在使用 junit 和 selenium web 驱动程序 2 28 问题是 如果我运行成功的测试用例 Web 驱动器能够关闭 Firefox 实例 但是当测试用例失败时 Selenium Web 驱动器无法关闭 Firefox
  • 如何在 JFace 的 TableViewer 中创建复选框?

    我创建了一个包含两列的 tableViewer 我想将其中一列设为复选框 为此 我创建了一个 CheckBoxCellEditor 但我不知道为什么它不起作用 名为 tableName 的列显示其值正常 色谱柱规格如下 String COL
  • ElasticBeanstalk Java,Spring 活动配置文件

    我正在尝试通过 AWS ElasticBeanstalk 启动 spring boot jar 一切正常 配置文件为 默认 有谁知道如何为 java ElasticBeanstalk 应用程序 不是 tomcat 设置活动配置文件 spri
  • 在Windows上安装Java 11 OpenJDK(系统路径问题)

    Java 11 最近发布了 众所周知 这个版本没有安装文件 当然 要在没有安装程序的情况下安装 Java 我将系统设置 PATH 和 JAVA HOME 设置为解压缩 Java 11 的文件夹的地址 根据对类似问题的已接受回复建议 唯一的事
  • 线程自动利用多个CPU核心?

    假设我的应用程序运行 2 个线程 例如渲染线程和游戏更新线程 如果它在具有多核 CPU 当今典型 的移动设备上运行 我是否可以期望线程在可能的情况下自动分配给不同的核心 我知道底层操作系统内核 Android linux内核 决定调度 我的
  • Android Studio 在编译时未检测到支持库

    由于 Android Studio 将成为 Android 开发的默认 IDE 因此我决定将现有项目迁移到 Android studio 中 项目结构似乎不同 我的项目中的文件夹层次结构如下 Complete Project gt idea
  • JNI 不满意链接错误

    我想创建一个简单的 JNI 层 我使用Visual studio 2008创建了一个dll Win 32控制台应用程序项目类型 带有DLL作为选项 当我调用本机方法时 出现此异常 Exception occurred during even
  • Convert.FromBase64String 方法的 Java 等效项

    Java 中是否有相当于Convert FromBase64String http msdn microsoft com en us library system convert frombase64string aspx which 将指
  • HDFS:使用 Java / Scala API 移动多个文件

    我需要使用 Java Scala 程序移动 HDFS 中对应于给定正则表达式的多个文件 例如 我必须移动所有名称为 xml从文件夹a到文件夹b 使用 shell 命令我可以使用以下命令 bin hdfs dfs mv a xml b 我可以
  • 使用替换字符串中多个单词的最有效方法[重复]

    这个问题在这里已经有答案了 此刻我正在做 Example line replaceAll replaceAll cat dog replaceAll football rugby 我觉得那很丑 不确定有更好的方法吗 也许循环遍历哈希图 ED
  • Clip 在 Java 中播放 WAV 文件时出现严重延迟

    我编写了一段代码来读取 WAV 文件 大小约为 80 mb 并播放该文件 问题是声音播放效果很差 极度滞后 你能告诉我有什么问题吗 这是我的代码 我称之为doPlayJframe 构造函数内的函数 private void doPlay f
  • 检查 Android 手机上的方向

    如何查看Android手机是横屏还是竖屏 当前配置用于确定要检索的资源 可从资源中获取Configuration object getResources getConfiguration orientation 您可以通过查看其值来检查方向
  • 从 android 简单上传到 S3

    我在网上搜索了从 android 上传简单文件到 s3 的方法 但找不到任何有效的方法 我认为这是因为缺乏具体步骤 1 https mobile awsblog com post Tx1V588RKX5XPQB TransferManage
  • 反思 Groovy 脚本中声明的函数

    有没有一种方法可以获取 Groovy 脚本中声明的函数的反射数据 该脚本已通过GroovyShell目的 具体来说 我想枚举脚本中的函数并访问附加到它们的注释 Put this到 Groovy 脚本的最后一行 它将作为脚本的返回值 a la
  • 归并排序中的递归:两次递归调用

    private void mergesort int low int high line 1 if low lt high line 2 int middle low high 2 line 3 mergesort low middle l
  • Java中未绑定通配符泛型的用途和要点是什么?

    我不明白未绑定通配符泛型有什么用 具有上限的绑定通配符泛型 stuff for Object item stuff System out println item Since PrintStream println 可以处理所有引用类型 通
  • Java - 不要用 bufferedwriter 覆盖

    我有一个程序可以将人员添加到数组列表中 我想做的是将这些人也添加到文本文件中 但程序会覆盖第一行 因此这些人会被删除 如何告诉编译器在下一个空闲行写入 import java io import java util import javax
  • 将 JTextArea 内容写入文件

    我在 Java Swing 中有一个 JTextArea 和一个 提交 按钮 需要将textarea的内容写入一个带有换行符的文件中 我得到的输出是这样的 它被写为文件中的一个字符串 try BufferedWriter fileOut n
  • android Accessibility-service 突然停止触发事件

    我有一个 AccessibilityService 工作正常 但由于开发过程中的某些原因它停止工作 我似乎找不到这个原因 请看一下我的代码并告诉我为什么它不起作用 public class MyServicee extends Access
  • java8 Collectors.toMap() 限制?

    我正在尝试使用java8Collectors toMap on a Stream of ZipEntry 这可能不是最好的想法 因为在处理过程中可能会发生异常 但我想这应该是可能的 我现在收到一个我不明白的编译错误 我猜是类型推理引擎 这是

随机推荐

  • 重命名 Kubernetes 中的部署

    If I do kubectl get deployments I get kubectl get deployments NAME DESIRED CURRENT UP TO DATE AVAILABLE AGE analytics re
  • 如何在 Django-rest-framework 序列化器中的关系模型中获取额外的列?

    I have Category and Article model Article有外键引用Category in my serializer由于 我可以在类别模型中获取名称列 str 方法 但我怎样才能得到其他列Category mode
  • 使用 Symfony2 / Symfony3 中的 FOSUserBundle 删除/替换用户名字段为电子邮件

    我只想使用电子邮件作为登录方式 我不想使用用户名 symfony2 symfony3 和 FOSUserbundle 可以吗 我在这里读到http groups google com group symfony2 browse thread
  • 不要扩展 React.Component

    创建 React 组件的 es6 语法是export default class ExampleComponent extends React Component 但是它仍然有效export default class ExampleCom
  • 如何为pytest命令指定几个标记

    Reading http doc pytest org en latest example markers html http doc pytest org en latest example markers html我看到了基于标记包含或
  • 限制 Java 中 HashMap 的最大大小

    我想限制 a 的最大尺寸HashMap对我正在实现的各种哈希算法进行度量 我查看了其中之一的负载因子HashMap的重载构造函数 HashMap int initialCapacity float loadFactor 我尝试在构造函数中将
  • 无法在 logback.xml 中使用 Spring 属性占位符

    我有一个使用 Logback 的 Spring Boot 控制台应用程序 所有属性 对于应用程序以及 Logback 都被外部化到类路径中的标准 application properties 文件中 这些属性可以在应用程序本身中很好地获取
  • 如何导入和使用.so文件

    请给我示例 代码 如何将 gccgo 生成的 so 文件导入到 main go 中 Go 尚不支持动态代码加载 即插件 有计划在未来添加支持 但目前尚未确定时间表 https docs google com document d 1nr T
  • 如何查看 numpy 广播对象?

    根据文档 http docs scipy org doc numpy user basics broadcasting html gt gt gt a np array 1 0 2 0 3 0 gt gt gt b np array 2 0
  • 正则表达式用于识别 Guid 后跟数字

    我有一个可以识别 Guid 的正则表达式 string pattern 0 9a fA F 8 0 9a fA F 4 0 9a fA F 4 0 9a fA F 4 0 9a fA F 12 我有一个可以识别数字的正则表达式 string
  • 如何在 Xamarin.Forms 中获取客户端设备的 MAC 地址?

    在我的客户端服务器解决方案中 我需要运行 Xamarin Forms 应用程序的前端设备的 MAC 地址 目前我只有一个条目 用户应该在其中输入运行应用程序的设备的 MAC 地址 主界面 我已经搜索过这个主题 发现iOS和Android对于
  • 如何将 AngularJS 变量传递给 Javascript?

    我正在构建一个带有模态窗口的 AngularJS Web 应用程序 在模态窗口中 我可以显示 JQuery Flot 实时图表 类似于 http people iola dk olau flot examples realtime html
  • 获取两个 NSDate 之间的准确时差?

    有什么办法可以找出两者之间的准确差异NSDate 我已经找到了解决方案 但它们不够准确 我需要考虑夏令时 不同月份有不同天数等事实 诸如 60 60 24 等计算分钟 小时和天的简单计算不会将它们考虑在内 假设我需要计算出现在时间之间的差异
  • 使用字典的 Protobuf-net 对象引用反序列化:引用跟踪对象在反序列化期间更改了引用

    我在尝试使用 protobuf net 序列化 反序列化复杂对象图时遇到一些问题 我正在开发一个遗留应用程序 我们正在使用 Net Remoting 将 GUI 客户端连接到 C 服务 由于使用默认值的对象图的序列化大小 我们发现海外用户的
  • 上传1GB或以上的文件

    上传大于 1 GB 的文件的最佳方式是什么 当前情况 我们正在使用 Flask 来部署网络服务器 我们必须上传大于 1 GB 的文件 以前我们只上传了几MB的文件 所以 这不是问题 但现在对于大于 1 GB 的文件 旧的上传方法不再可行 服
  • Qt 中带有进度回调的 CopyFileEx

    有人能给我一个在 Qt 中使用 CopyFileEx 和进度回调的工作示例吗 我发现了一些划痕并尝试合并它但没有成功 我什至无法将 CopyProgressRoutine 函数作为 CopyFileEx 的参数传递 因为我无法声明指向该函数
  • 加载 data.table 对象后直接使用 get(data.table) 生成新变量

    我正在尝试在 data table 中生成一个新变量 我生成 保存并再次加载该变量 加载后 我通过 get 间接寻址 data table 只要我之前不直接寻址它以创建变量 这对于生成新变量就不起作用 可能是某种环境问题 Generate
  • CDI 注入在 Servlet 中不起作用

    我真的需要你的帮助 我现在正在研究这个问题几周或几个月 对于这么长的帖子 我深表歉意 但我想尽可能准确地解释问题和我的设置 我的 JAVA EE 6 Web 应用程序主要包含 3 个 Servlet javax faces webapp F
  • 如何从我的 Git 存储库中删除未引用的 blob

    我有一个 GitHub 存储库 有两个分支 master and release The release分支包含二进制分发文件 这些文件导致存储库大小非常大 超过 250 MB 因此我决定清理这些内容 首先我删除了远程发布分支 通过git
  • Hibernate 5 和类型化标准查询 (JPA2)

    问题 1 如果我从 Hibernate 4 x 升级到 Hibernate 5 x 我是否仍然可以使用 旧 条件查询 或者仅使用新的条件查询TypedJPA2 标准查询 旧的是否已被弃用 或者我可以同时使用两者吗 2 我是否正确理解新的类型