问题标签 [jpa]
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 - 枚举的 JPA 映射集合
JPA 中有没有办法在 Entity 类中映射枚举集合?或者唯一的解决方案是用另一个域类包装 Enum 并使用它来映射集合?
我正在使用 Hibernate JPA 实现,但当然更喜欢实现无关的解决方案。
java - 注释继承的属性以实现持久性
假设我有一个 A 类如下:
B类如下:
如何注释从 A 继承的 id 字段,以便 Hibernate/JPA 知道它是实体的 Id?我尝试简单地将@Id 放在 A 中的字段上,但这不起作用。我也尝试将 A 设为实体,但这也不起作用。
web-applications - 使用 EJB 3.0、JPA、JBoss 上的动态 Web 项目的 Java EE 应用程序的项目架构/组织
我有一个包含不同动态 Web 项目的 webapp,每个项目通常都包含一个 EJB 项目。我们希望让它们保持交互,例如通过 JNDI 使用彼此的 EJB 中的 bean 和类,共享同一个数据库或使用它们自己的数据库。但我们也希望能够在不同的服务器上保留不同的项目。
就架构和组织而言,此类项目的正确重点是什么?
我们应该如何使用 EAR?一只耳朵来统治他们并在黑暗中束缚他们?(对不起,必须做那个 LOTR 参考),或者每个服务器/Web 项目的 EAR,等等?
java - JPQL 中有这样的 CASE 表达式吗?
假设有一张桌子:
和相关的 JPA 实体类
有没有办法构造一个松散地翻译成这个SQL的JPQL语句,即如何将case表达式翻译成JPQL?
java - StaleObjectStateException 错误
任何人都可以指出我的错误吗?
注意:这是从我的真实应用程序中提取的简化测试用例。因此 3 个实体管理器和 em1.getTransaction().begin(); 的奇怪用法 em1.clear(); em1.close(); 在每个部分的末尾。在真实的应用程序中,它发生在不同的时间。HibernateUtil 基本上是从教程中复制过来的。
javax.persistence.OptimisticLockException:org.hibernate.StaleObjectStateException:行已被另一个事务更新或删除(或未保存的值映射不正确):org.hibernate.ejb.AbstractEntityManagerImpl 的 [WebOrganizer.classes.types.StringType#174]。 wrapStaleStateException(AbstractEntityManagerImpl.java:646) 在 org.hibernate.ejb.AbstractEntityManagerImpl.throwPersistenceException(AbstractEntityManagerImpl.java:600) 在 org.hibernate.ejb.AbstractEntityManagerImpl.merge(AbstractEntityManagerImpl.java:237) 在 WebOrganizer.web.servlets.TypeServlet .test2(TypeServlet.java:356) 在 sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) 在 sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39) 在 sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25) )在java。lang.reflect.Method.invoke(Method.java:597) at org.testng.internal.MethodHelper.invokeMethod(MethodHelper.java:580) at org.testng.internal.Invoker.invokeMethod(Invoker.java:517) at org .testng.internal.Invoker.invokeTestMethod(Invoker.java:669) 在 org.testng.internal.Invoker.invokeTestMethods(Invoker.java:956) 在 org.testng.internal.TestMethodWorker.invokeTestMethods(TestMethodWorker.java:126) 在org.testng.internal.TestMethodWorker.run(TestMethodWorker.java:110) 在 org.testng.TestRunner.runWorkers(TestRunner.java:720) 在 org.testng.TestRunner.privateRun(TestRunner.java:590) 在 org.testng .TestRunner.run(TestRunner.java:484) at org.testng.SuiteRunner.runTest(SuiteRunner.java:332) at org.testng.SuiteRunner.runSequentially(SuiteRunner.java:327) at org.testng.SuiteRunner.privateRun( SuiteRunner.java:299) 在 org.testng.SuiteRunner.run(SuiteRunner.java:204) at org.testng.TestNG.createAndRunSuiteRunners(TestNG.java:864) at org.testng.TestNG.runSuitesLocally(TestNG.java:830) at org.testng.TestNG.run (TestNG.java:748) 在 org.testng.remote.RemoteTestNG.run(RemoteTestNG.java:73) 在 org.testng.remote.RemoteTestNG.main(RemoteTestNG.java:124) 在 sun.reflect.NativeMethodAccessorImpl.invoke0( Native Method) at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39) at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25) at java.lang.reflect.Method.invoke(Method.java:597)在 com.intellij.rt.execution.application.AppMain.main(AppMain.java:90)runSuitesLocally(TestNG.java:830) at org.testng.TestNG.run(TestNG.java:748) at org.testng.remote.RemoteTestNG.run(RemoteTestNG.java:73) at org.testng.remote.RemoteTestNG.main (RemoteTestNG.java:124) 在 sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) 在 sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39) 在 sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25) 在com.intellij.rt.execution.application.AppMain.main(AppMain.java:90) 上的 java.lang.reflect.Method.invoke(Method.java:597)runSuitesLocally(TestNG.java:830) at org.testng.TestNG.run(TestNG.java:748) at org.testng.remote.RemoteTestNG.run(RemoteTestNG.java:73) at org.testng.remote.RemoteTestNG.main (RemoteTestNG.java:124) 在 sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) 在 sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39) 在 sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25) 在com.intellij.rt.execution.application.AppMain.main(AppMain.java:90) 上的 java.lang.reflect.Method.invoke(Method.java:597)NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39) 在 sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25) 在 java.lang.reflect.Method.invoke(Method.java:597) 在 com.intellij.rt.execution .application.AppMain.main(AppMain.java:90)NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39) 在 sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25) 在 java.lang.reflect.Method.invoke(Method.java:597) 在 com.intellij.rt.execution .application.AppMain.main(AppMain.java:90)
原因:org.hibernate.StaleObjectStateException:行已被另一个事务更新或删除(或未保存的值映射不正确):org.hibernate.event.def.DefaultMergeEventListener.entityIsDetached 处的 [WebOrganizer.classes.types.StringType#174] (DefaultMergeEventListener.java:261) 在 org.hibernate.event.def.DefaultMergeEventListener.onMerge(DefaultMergeEventListener.java:53) 在 org.hibernate.event.def.DefaultMergeEventListener.onMerge(DefaultMergeEventListener.java:120)。 impl.SessionImpl.fireMerge(SessionImpl.java:677) 在 org.hibernate.impl.SessionImpl.merge(SessionImpl.java:661) 在 org.hibernate.impl.SessionImpl.merge(SessionImpl.java:665) 在 org.hibernate .ejb.AbstractEntityManagerImpl.merge(AbstractEntityManagerImpl.java:228) ... 28 更多
java - 解决 JPA 查询查找连接列表中的最后一个条目
给出了以下类结构:
可以通过 JPA 在 db 上访问此类结构。在 DAO 层中,我可以用 JPA 语法编写查询。
问题:我想要一个列表,其中包含具有给定 ID 的给定所有者的条目,并且谁是工作中的最后一个Job
(按 assignDate 排序)。听起来很复杂,也许更简单:给我所有工作,并且指定的所有者是工作的实际所有者。JobHistory
Jobhistory
JobHistory
更新:为清楚起见,我将稍微更改类的名称。
每个Job
人都有按 . 排序的所有者的历史assignDate
。实际所有者得到了最后分配的工作(即MAX(assignDate)
)。我想为每个工作找到特定用户的JobOwnerHistory
条目。MAX(assignDate)
User
java - Hibernate 使用 MySQL 生成无效的 SQL 查询
我有以下 JPA 实体类(示例)。一所房子属于一条街道。一条街有许多房子。
我将生成类型设置为身份,它应该自动分配一个新的 ID。
当用新街道创建新房子时,我必须首先创建并坚持街道,然后是房子。这是因为我没有将 CascadeType 设置为 PERSIST,因此必须手动完成 [1]。但是,在插入新创建的街道时:
Hibernate/JPA 生成以下 SQL 查询:
MySQL 不喜欢的。
任何想法为什么?我正在使用 Java 6、MySQL 5.0.67 和 Hibernate 的 JPA 实现(版本 3.2.1.ga)。
[1] EJB 3 in Action 第 318-319 页
json - Struts2 JSON 插件不能处理“惰性”数据
我有一个延迟获取的具有 OneToOne 关系的实体:
这是我做的测试,尝试获取所有实体并将它们序列化为 JSON,使用 JSONPlugin 中的 JSONUtil 类( Struts 2 的“官方”json 插件):
这是我得到的异常(当我将此插件与 Struts2 Action 和 @JSON 注释一起使用时,同样的异常):
我正在使用 Hibernate,当我更改 fetch=FetchType.EAGER 时,上面的相同代码可以工作。我认为延迟加载会生成一个代理对象,这会导致它失败。
我的问题是:是否可以序列化包含延迟加载属性的对象?
java - 使用 JPA/EJB3 进行批量插入
JPA/EJB3 框架是否提供标准方式来执行批量插入操作...?我们使用hibernate作为持久化框架,所以我可以回退到Hibernate Session并使用组合session.save()/session.flush()实现批量插入。但是想知道EJB3是否支持这个......
java - JPA java代码生成
我正在专门寻找 JPA 代码生成技术
首先,有哪些项目可以生成符合 JPA 的代码?(例如 HibernateTools)
其次,我还想自定义代码生成实用程序,因为它必须符合我们的公司标准。
如果不是,那么所有可用于使用反射生成 java 代码的框架是什么?所以我可以从头开始写。
注意:我使用 eclipse 生成 JPA 代码并反复重构以使其兼容。