- mongodb - 在 MongoDB mapreduce 中,如何展平值对象?
- javascript - 对象传播与 Object.assign
- html - 输入类型 ="submit"Vs 按钮标签它们可以互换吗?
- sql - 使用 MongoDB 而不是 MS SQL Server 的优缺点
我最近开始在 Google App Engine 上使用 JPA。在阅读一些示例时,我注意到对象的持久化方式存在一些变化。在一种情况下,我见过这样的事情:
entityManager.getTransaction().begin();
entityManager.persist(object);
entityManager.getTransaction().commit();
在其他情况下,我看不到 getTransaction()
的使用。我只是看到 entityManager.persist(object)
。什么时候适合使用 getTransaction()
?
最佳答案
如果您使用容器管理的 EntityManager
,那么您使用的是 JTA 事务。因此,您不需要(更准确地说 - 您不能)干扰使用 entityManager.getTransaction()
获取的 EntityManager
事务。 JTA 启动并提交您的事务。
如果您使用应用程序管理的 EntityManager
并且您不想参与 JTA 事务,那么您需要自己管理它们(称为资源本地实体管理器)。
大多数情况下,与 EntityManager.getTransaction()
一起使用的应用程序管理的 EntityManager
用于 Java SE 环境。
编辑:您可能对 JPA 2.0 specification 中的 7.5 控制交易 部分感兴趣.
关于java - JPA - 持久化对象时何时使用 getTransaction(),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8464370/
我最近开始在 Google App Engine 上使用 JPA。在阅读一些示例时,我注意到对象的持久化方式存在一些变化。在一种情况下,我见过这样的事情: entityManager.getTrans
我正在使用 EclipseLink 2.3.0。我有一个从单元测试调用的方法(因此在容器之外,没有 JTA),如下所示: EntityManager em = /* get an entity man
![在此处输入图像描述][1] SessionFactory sessionFactory = new Configuration().configure().buildSessionFactory(
尝试将 xml 文件解析到 mysql 数据库时出现以下错误。数据库已创建。我不明白为什么它无法创建用户 错误代码 Console errors 驱动程序.java package DAO; impo
当我执行时: public void beginTransaction() { em.getTransaction().begin(); } 在以相同方式启动一个 Activity 事务后,我
我想通过调用存储过程在 ejb 方法中执行异步事务操作。当我调用方法时,出现以下错误: java.lang.IllegalStateException: A JTA EntityManager can
我有以下代码: EntityManagerFactory emf = Persistence.createEntityManagerFactory("test") EntityManager enti
如何在我的非 ejb 应用程序中使用以下代码。代码有效。 @Override public void saveItems(Collection items) { synchronized (e
在调用 session.gettransaction 之前,我是否必须确保它存在? 如果是这样,我如何检查 session 中是否有当前未提交的事务? 最佳答案 不,您不必检查。如果当前事务不存在,S
我正在使用 spring、oracle 和 jotm(在 tomcat 中)来使用 2PC 提交。下面是 Spring 配置。
这可能是一件微不足道的事情,但我希望得到一些帮助。 我得到: javax.ejb.EJBException: java.lang.IllegalStateException: Illegal to
我在一个使用 spring data 和 apache camel 的项目中工作,我们有 2 个数据库,Sql Server 和带有 JTA 的 Oracle。出现问题是因为我需要从一个大文件(大约
我想知道 是 session.getTransaction().commit();获取数据时在 hibernate 状态下需要 private List listEvents() {
所以在一个大的重构项目之后,我留下了这个异常并且不确定如何纠正它。它正在处理一些我没有编写的代码,我不熟悉它是如何工作的。还有其他问题处理此异常,但似乎没有一个适合我的情况。 使用 EntityMan
谁能解释两者之间的区别: @Resource UserTransaction objUserTransaction; 和 EntityManager.getTransaction(); 还有什么是容器
本文整理了Java中com.github.robozonky.common.remote.Zonky.getTransactions()方法的一些代码示例,展示了Zonky.getTransactio
我是 hibernate 初学者,我只想知道对象是否仅与 session.close() 分离,还是与 session.getTransaction().commit() 分离。因为我无法从另一个事务
我正在使用 Spring + JPA + Hibernate + EntityManager 与数据库对话。我收到“A JTA EntityManager cannot use getTransact
我正在使用 1.7.4和 4.0.1.RELEASE我的项目的版本。最近我将这两个版本升级到 1.8.9和 4.3.11.RELEASE . 我在我的项目中使用 JPA 存储库,当我尝试保存任何对象时
更新数据库时我应该更喜欢什么?这两种方法的优缺点是什么?我什么时候应该使用其中一种? public void disemployEmployee(Integer employeeId, Date en
我是一名优秀的程序员,十分优秀!