问题标签 [jpa-2.1]
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-ee-7 - jpa 2.1 的生产就绪持久性提供程序
是否有适用于 JPA 2.1 的生产就绪持久性提供程序?我看到 Hibernate 只会从 4.3 开始支持它,而且它只是在 beta 阶段。
jpql - JPA2.1 JPQL 查询在 JOIN 中具有多个 TREAT(...) 操作
我尝试对以下实体图进行 JPQL 查询:Derived1 和 Derived2 是 ReferencedEntity 的子类。主实体有一个 ReferencedEntity 列表。现在假设每个 MainEntity 的列表中只有一个 Derived1 和 Derived2 的实例。
现在我想通过它们在列表中包含的 d1 和 d2 值对 MainEntities 进行分组。因此,我编写了以下 JPQL 查询:
我认为这应该可行,但我得到:
仅出于测试目的,我尝试了不同的连接:
这个有效并提供了结果。
然后我尝试了第三个查询,只是改变了连接的顺序:
这会导致完全相同的异常(但这次是 Derived1)。
对我来说,EclipseLink 中可能存在错误,或者我是否正在尝试一些被禁止的东西?
jpa - 通过名单在spring数据jpa本机查询中
使用spring data JPA,我正在尝试进行这种查询(它更复杂,这是一个简单的案例)
当我启动查询时,会引发异常:
我尝试了 List < Integer >、Integer[]、Object[] 和 String 但它不起作用...
我不能传递值列表吗?
哪种是进行此类查询的最佳方法?
谢谢!
hibernate - Envers:没有额外审计表的单向 OneToMany?
以下数据库架构:
员工[EMP_ID (PK), 姓名, 薪水]
电话[ID (PK), number_str, OWNER_ID (FK)]
Employee_aud[EMP_ID (PK), REV (PK/FK), REVTYPE, 姓名, 薪水]
Phone_aud[ID (PK), REV (PK/FK), REVTYPE, number_str]
Employe_phone_aud[REV(PK/FK), OWNER_ID(PK/FK), REVTYPE(PK/FK)]
可以用以下 Java 实体表示:
员工:
电话:
如您所见,审计表之间有一个链接表,但实体表之间没有链接表。在 Hibernate-Envers Developerguide 中,我找到了以下文本:
当使用这两个 (@OneToMany+@JoinColumn) 注释映射集合时,Hibernate 不会生成连接表。然而,Envers 必须这样做,这样当您阅读相关实体已更改的修订时,您不会得到错误的结果。
这是我对这段文字的解释:我的员工实体可能属于许多电话实体。例如,如果我将电话添加到某个员工,那么我的员工会被修改,因此必须进行审核条目。使用上面的映射,这将导致为电话实体而不是员工生成审计条目。使用链接表解决了这个问题(因为该表描述了员工拥有的电话集合中的更改)。
现在我的 3 个问题: - 我是否理解上述陈述是否正确,或者我是否遗漏了一些特别的东西?- 如果 Envers 没有创建这个链接表,也可以通过查看 phone_aud 表来跟踪这些关系。这是真的?- 是否可以配置/扩展环境来支持这种行为?
注意:我问这个问题只是因为我想知道是否有可能摆脱额外的链接表并更好地理解为什么需要它。
谢谢!
java - WildFly8 JPA2.1 和枚举值
我在使用 JPA2.1(包含在 WildFly8 中)的枚举类型时遇到问题。这是使用枚举集的类:
然后我列举了动物:
现在,当我尝试启动服务器时,出现以下错误:
这适用于 Jboss 7.1.1.Final。我应该为此使用转换器(http://somethoughtsonjava.blogspot.fi/2013/10/jpa-21-type-converter-better-way-to.html)还是有什么问题?感谢所有帮助!
mysql - 使用 JPA 2.1、EclipseLink、JSF 2.0 的日志表
在持久化、更新和删除映射实体之前,我已经制作了触发器来记录操作,但它只在 MySQL 中,所以我认为我必须使用annotations@PostPersist
和.@PostUpdate
@PostDelete
因此,当实体(例如 Category)被持久化时,会抛出一个将信息插入日志表的方法,使用以下 SQL:
我就是这样做的,使用 createNativeQuery 然后 query.executeUpdate() 但什么也没发生。
做我想做的事的最佳方法是什么?提醒我正在使用 EclipseLink。
primefaces - 行未更新 - 对话框中的更新按钮(由 dataTable 中的按钮打开)
版本:PrimeFaces 3.5、JPA 2.1、GlassFish 4.0、Java EE 7、JSF 2.0。
对话框正常打开并显示版本数据,但此对话框中的“更新”按钮不起作用。按钮代码如下:
完整的对话代码:
更新 dataTable 中的 commandButton:
托管 bean 中的方法 save():
存储库中的方法 edit() :
如果没有 ajax="false",更新实体的按钮将不起作用。
testing - Jpa2 实现测试
我想用 Hibernate、EclipseLink、OpenJPA 等不同的实现来测试一些 JPA 代码。
我仍在寻找一种优雅的方式来做到这一点,但还没有找到。
但是我想知道实现者没有他们需要执行的某种测试来证明他们的实现符合特定标准(JPA2.1)
你知道是否有像 JPA 这样的测试兼容性工具包,这样我就可以从那里激励自己?
欢迎任何关于我如何在实现之间轻松切换运行测试的建议。
我考虑过使用 Maven 配置文件……但运行主类可能不太好。
谢谢