我正在从网络服务将大量数据加载到数据库中。我使用 eclipslink 来实现持久性并在 glassfish 3.0 上运行该应用程序。我在测试数据集上遇到了一些问题,因为存在一些外键约束违规。我对违规行为表示同意,如果数据不完整,我不想要该数据。然而,我的问题是在容器中抛出异常。然后,这将我的事务标记为回滚,然后我根本没有得到任何数据。
我想继续使用 JTA,但不确定我是否可以实现我想要实现的目标,即创建我自己的 JTA 事务,以便我可以控制它的提交时间等。我不确定这是否是一个好主意,但我觉得这样做可能会破坏使用 JTA 的一些好处。
那么是否有可能获得JTA事务呢?
最佳答案
数据库在 session bean 的方法中工作。对该方法进行注释:
@TransactionAttribute(TransactionAttributeType.REQUIRES_NEW)
它将被赋予自己的交易。外部事务在执行其操作时将被暂停。
关于java - 您可以创建自己的 JTA 事务吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5757932/