问题标签 [jpa-2.0]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
java - JPQL 检查多对多关系
只是一个简单的问题:
存在与同一实体的多对多关系连接的实体(例如用户)(例如,此关系描述“友谊”并且它是对称的)。
就执行时间而言,检查用户 A 是否是用户 B 的“朋友”的最快方法是什么?“愚蠢”的方式是获取整个列表,然后检查用户是否存在,但这显然是开销。
我正在使用 JPA 2
这是示例代码:
java - JPA 实体监听器和@embeddable
我有一个 JPA 实体的类层次结构,它们都继承自 BaseEntity 类:
我希望所有实现给定接口的实体都能在持久化和/或更新时自动验证。这就是我所拥有的。
我的验证器监听器:
这是我检查的 Validateable 接口(外部接口只是一个标记,内部包含方法):
所有这些都有效,但是我想将此行为扩展到 Embeddable 类。我知道两种解决方案:
从实体验证方法手动调用可嵌入对象的验证方法:
/li>使用反射,检查所有属性以查看它们的类型是否属于它们的接口类型之一。这会起作用,但它并不漂亮。有没有更优雅的解决方案?
hibernate - Hibernate 3.5 中的 @OrderColumn 注释
我正在尝试将@OrderColumn
注释与 Hibernate 3.5一起使用
检索数据时,一切正常。但我不能让它重新排序列表中的元素并将新订单保存到数据库中。
hibernate - JPA2 + 休眠 + 排序方式
是否可以(使用 Hibernate 和 JPA2 Criteria Builder)按方法结果而不是实体成员进行排序?
我想要实现的是按结果排序getEvaluatedValue()
。那可能吗?
我没有使用@Formular,但是
我虽然它是普通的 JPA2,当然你是对的,没有机会通过动态数据订购。但是我可能被允许使用 if-else 或任何语句(使用我的 QueryBuilder 定义)指定一些 order-by 块,不是吗?
java - 您是否应该默认使用应用程序服务器的 JPA 提供程序?
我有一个 100% 兼容 JPA2 的应用程序,它需要可移植到许多应用程序服务器。符合 JPA(理论上)意味着我们可以通过配置切换 JPA 提供程序(例如,无需更改源代码)——(对吗???)。
当在 servlet 容器(例如 Tomcat、Jetty)中运行时,应用程序被配置为使用 Hibernate 运行。我们选择 Hibernate 而不是 TopLink 和 Eclipselink 是因为它的成熟度和性能。到目前为止,这有效。
但是,当在 Java EE 应用程序服务器中运行时,我们应该默认使用其中的 JPA 提供程序,还是坚持使用 Hibernate?
我知道在 JBoss 中,提供者是 Hibernate,所以它可能无关紧要。但是,我认为WebLogic 中的提供者是 Eclipselink。我不知道提供者 WebSphere 或 Glassfish 使用什么,但我看到了有关如何在这些应用程序服务器中使用 Hibernate 作为提供者的详细说明。
我想问这个问题的另一种方式是在这些应用程序服务器中使用 Hibernate 会丢失什么?
java - Hibernate 3.5.1 出现 Tomcat 错误
我刚刚升级到休眠 3.5.1,现在我收到一个错误消息:
这只发生在 Tomcat 上,而不是 Jetty。
我查过了,没有任何冲突,这个方法肯定存在。我在类路径上有 hibernate-jpa-2.0-api-1.0.0.Final.jar,并且没有任何冲突的类。
有什么建议么?
java - JPA 2 Criteria API:为什么 isNull 与 equal 结合使用时会被忽略?
我有以下实体类(继承自 PersistentObjectSupport 类的 ID):
如果我使用 Criteria API 执行以下查询:
我在日志中打印了以下 SQL:
但是,如果我将前面代码中的 where() 行更改为这一行:
我得到以下 SQL:
也就是说,完全忽略 isNull 标准。就好像它甚至不存在(如果我只提供与 where() 方法相同的标准,我会得到相同的 SQL 打印)。
这是为什么?这是一个错误还是我错过了什么?
hibernate - JPA 2.0 实现比较:Hibernate 3.5 vs EclipseLink 2 vs OpenJPA 2
你的选择是什么?您有什么建议和经验吗?
我正在使用 Hibernate 3.5 和 Spring 3.0 开发应用程序
优点:
- 良好的文档
- 易于配置和有用的日志
- 人气 - 广泛的社区
- JPA 的一些扩展
- 一些额外的工具 - Eclipse 的 JBoss 工具、hbm2ddl、生成静态元模型等......
缺点:
- 虫子!(序列,集合等......)
- “纯”Hibernate 使许多功能加倍。遗留的 Hibernate 和 JPA 注释很混乱。
我正在考虑切换到 EclipseLink。你怎么看 ?
编辑:
我已经尝试过 EclipseLink 并且有非常糟糕的体验。EclipseLink 似乎需要 LoadTimeWeaver 并且喜欢在 OSGi 平台上运行,而不是简单的 Jetty 或 Tomcat 环境。我只是没有时间处理所有这些配置内容。
java - 有没有办法减少与 CriteriaQuery 相关的样板代码量(在 JPA 2.0 中)?
我喜欢 JPA 2.0 带来的类型安全CriteriaQuery,但它也带来了一些样板代码。例如,假设我有一个名为 NamedEntity 的实体,它只有一个 id 和一个名为“name”的字符串字段(假设它的唯一约束设置为 true)。NamedEntityManager 可能如下所示:
有没有办法压缩代码以避免将相同的代码行复制/粘贴到每个查询方法中?也许以某种方式重用 CriteriaQuery 对象?
java - 为什么 Eclipse 不编译 APT 生成的类?
在我的 Eclipse 项目中,我正在使用第三方注释处理器,确切地说是Hibernate Metamodel Generator 。注释处理器按预期工作并生成规范指定的 .java 文件。这些文件生成到 Eclipse 项目的目录中的“gen”文件夹下。在项目属性中,这是正确的,因为存在两个源文件夹 - “src”和“gen”。但是,由于某种原因构建项目时,“gen”下的所有 [生成] 源都没有被编译(检查“bin”目录,我只看到“src”目录中的 .class 文件)。有谁知道为什么会这样?