gpt4 book ai didi

java - JPA - 执行更新

转载 作者:行者123 更新时间:2023-12-01 18:54:22 25 4
gpt4 key购买 nike

我有以下代码:

package testingjpa;

import javax.persistence.EntityManager;
import javax.persistence.EntityManagerFactory;
import javax.persistence.Persistence;
import javax.persistence.Query;

public class Main
{

public static void main(String[] args)
{
EntityManagerFactory emFactory = Persistence.createEntityManagerFactory("TestingJPAPU");

EntityManager em = emFactory.createEntityManager();

Query query = em.createQuery("UPDATE Passengers p SET p.name = 'Robert' WHERE p.id = 2");

query.executeUpdate();
em.close();
}
}

此代码的问题在于它抛出 TransactionRequiredException。实体类工作正常,因为我尝试使用其他代码并且它工作得很好。请问我该如何解决这个问题?

最佳答案

您应该自己启动并提交/回滚事务,因为容器管理的事务在您的情况下不可用。

首先,您应该向 EntityManager 询问 UserTransaction。查询后,您应该提交或回滚您的事务。

您还应该进行一些适当的连接处理:在finally block 中关闭entitymanager,以避免在代码抛出异常时发生资源泄漏。

关于java - JPA - 执行更新,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14627949/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com