问题标签 [hibernate-entitymanager]
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.
hibernate - Hibernate EntityManager + JOTM:不使用事务
我正在尝试将 JOTM 和 Hibernate EntityManager 集成在一起,以在事务方式环境中测试我的 EJB,但在容器外。
我的测试如下所示:
- 启动 JOTM
- 将 JOTM 的 UserTransaction 放入 JNDI
- 创建和配置 StandardXADataSource
- 将 DataSource 放入 JNDI
- 配置休眠并创建 EMF
- 创建一个 EM
- 开始交易
- 在 EM 中加入交易
- 存储实体
- 验证它是否已存储
- 回滚事务
- 检查数据库的记录数
- 撕毁一切
这是我的代码的样子: http: //pastebin.com/m22a9f6b
这是日志输出: http: //pastebin.com/m6da9383a
测试在第 12 步(第 121 行)失败。
如您所见,即使我已经回滚了事务,数据库中也有一条记录。似乎根本没有使用的事务和记录进入数据库。
你有什么想法是如何发生的以及如何解决它?
hibernate - 单个EntityManager(Hibernate)可以参与多个并发事务吗?
有没有一种方法可以让一个 EntityManager 顺利参与多个并发事务?
好吧,不是那么并发。就像是:
- 开始发送 1
- 在 tx 1 中做事
- 开始发送 2
- 在 tx 2 中做事
- 提交 tx 2
- 加入 tx 1 回来
- 在 tx 1 中做事
- 提交 tx 1
一步一步地不重叠。
hibernate - 如何检测与 Hibernate 的事务冲突?
我正在使用 Hibernate 2.6 和 hibernate-entitymanager。我试图捕捉和处理两个事务在一个对象上发生冲突的情况。这是发生的事情:
两个线程正在更新具有 @Version 字段的单个对象。失去提交竞争的线程在刷新时记录 StaleObjectStateException。异常不会被抛出,它只是被记录。我猜该事务当时被标记为仅回滚。
之后,当线程尝试执行提交时,它会因 RollbackException 而失败。我没有找到在代码中找出事务回滚的方法。
有没有办法在代码中捕捉和处理这种情况?基本上我想捕捉 StaleObjectStateException,但问题是 - 它没有被抛出。
更新:我试图从鸟瞰图完成的事情如下:
我有一个在 JBoss 下运行的 J2EE 应用程序。它有一些内部定时器调用服务和从 UI 调用的服务。它也有一个关键实体。我需要确保不同的线程不能同时更新该实体类的对象,因为这可能会导致数据不一致。这就是我实施乐观锁定的原因。
当出现乐观锁问题时,我一般会尝试处理这种情况。我想在非常高的级别捕获它并显示有效的用户消息(在我的情况下,最高级别是 RestEasy 的 ExceptionMapper)。问题是——当我捕捉到 RollbackException 时——已经太晚了。
我不手动冲洗。我的大多数 EJB 都使用 CMT,并且会话会自动刷新。
mysql - hibernate、mysql、glassfish v3 和 JTA 数据源
我正在尝试将休眠实体管理器与 mysql 和 glassfish 一起使用。尝试使用 JTA 数据源时出现以下错误:
这是我配置persistence.xml的方式
但是,当我配置非 jta 数据源时,它工作正常
这一切都很好,但我真的很想使用:
代替:
我是否缺少休眠配置的某些内容,或者甚至可以使用 JTA 数据源?
hibernate - Spring、Hibernate、EntityManager 和类继承
我对 Spring & Hibernate 非常陌生。在我们的团队中,我们正在使用 Struts 2 作为表示层构建一个 Web 应用程序,下面是 Spring 3 和 Hibernate 3(带有注释)。我们仍在争论是否使用 DAO 和Session
's 或EntityManager
's 进行 CRUD 操作。抛开哪个更好的问题,我在使用EntityManager
.
我的目标是创建一个抽象(通用)Service
,它将公开 4 个基本操作:保存、删除、按 ID 查找和按类查找全部。其他服务将从这里继承并仅实现自定义查找或更新(这可能会在未来发生变化)。问题是,我不确定将带注释的EntityManager
. 我知道,如果我从我的服务中调用 save() Action
,即 Bob,它save()
从 Person parent继承Service
,系统将无法注入,EntityManager
因为尚未调用 Service Person 并且@PersistenceContext
未解析注释。
有没有办法解决这个问题?我想为我的服务使用继承,因为这会减少简单操作所需的代码量。
hibernate - JPA2 + 休眠 + 排序方式
是否可以(使用 Hibernate 和 JPA2 Criteria Builder)按方法结果而不是实体成员进行排序?
我想要实现的是按结果排序getEvaluatedValue()
。那可能吗?
我没有使用@Formular,但是
我虽然它是普通的 JPA2,当然你是对的,没有机会通过动态数据订购。但是我可能被允许使用 if-else 或任何语句(使用我的 QueryBuilder 定义)指定一些 order-by 块,不是吗?
jpa - 事务中的多个实体管理器
我正在编写一个应用程序,它将使用 JPA EntityManager API 将数据从一个数据库移动到另一个数据库。我的问题是: 1. 我可以在一个事务中使用多个实体管理器吗?2. 我可以从一个数据库中读取一个实体并将其保存在另一个数据库中吗?可能会遇到哪些问题?
hibernate - 声明的元模型属性工作正常,但继承的元模型属性为 NULL。为什么?
我无法运行以下测试:-
它在行抛出 NullPointerException project.get(Project_.lifeCycle)
。为什么?
PersistenceEntityBase.java
}
项目.java
}
EntityLifeCycleImpl.java
}
PersistentEntityBase_.java(使用 Hibernate 元模型生成器生成)
项目_.java
EntityLifeCycleImpl_.java
persistence.xml(仅相关部分)
编辑: 我使用 hibernate-entitymanager.3.6.0.Final 和 hibernate-jpamodelgen.1.0.0.Final。
编辑 2
@Pascal
我认为 Hibernate EM 3.6.0.Final 允许我们在级别定义带@Embedded
注释的字段,@Entity
但它在级别拒绝此类字段@MappedSuperclass
。你说什么?
由于我在这里看不到“文件上传选项”,我已经在我的 esnips 帐户中上传了 TestCase。下载基于 maven 的项目并运行SingularAttributeTest.java
. 并检查控制台输出
单击“下载 embedded-singular-attribute.zip ”链接下载文件,无需安装下载管理器。(如果你点击Download link with Green arrow
,你必须安装下载管理器!!)
java - Spring + EntityManagerFactory +Hibernate 监听器 + 注入
我有一个简单的问题。是否可以通过@Ressource 或@Autowired 将依赖注入添加到Hibernate Eventlistener?
我将向您展示我的 entitymanagerfactory 配置:
目前我通过 jpa.properties 注册我的听众,
但在这种情况下,我的听众没有弹簧注射。我找到了一个解决方案,但是这使用 sessionFactory 而不是 entitymanager 或者我可以在我的上下文中修改 sessionfactory 吗?希望有人有一个好主意或解决方案如何处理这个问题!
非常感谢!
java - 如果我有实体管理器,如何获取会话对象?
我有
如果使用 entitymanager,我如何检索会话,或者如何从我的分离标准中获取结果?