gpt4 book ai didi

jpa - EJB JPA 事务

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

我正在使用 JSF 2.1、EJB 3.1、JPA 2.0、Glassfish 3.1.1 和 NetBeans 7.0.1。

对于每个实体类,我使用 NetBeans 工具创建了一个单独的 Facade 类,例如 UserFacade 和 AddressFacade。这两个实体彼此不相关,并且彼此完全独立。但是,我需要在一个事务中将它们放入数据库,如果一个插入失败,那么另一个也应该回滚。我怎样才能做到这一点?据我所知,EJB 容器自己管理事务,不允许手动控制事务边界。

最佳答案

只要你在同一个持久化、更新或删除中“触摸”你的两个实体,事务就会回滚所有内容,但是,你说它们无论如何都彼此不相关,所以我猜你有执行 2 仍然存在,并且不会在同一事务范围内。

选项 1

你可以为此做一些简单而丑陋的事情,JPA 中有@PrePersist 和@PreUpdate,你可以确保一切都与以前的持久性保持一致。这会产生糟糕的代码库并强制产生不需要的依赖项。

选项 2

您可以简单地在 User 和 Address 之间建立关系,这是很自然的。

选项 3

第三个选项是使用 Bean Managed Transaction

关于jpa - EJB JPA 事务,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8894106/

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