gpt4 book ai didi

java - 对事务和锁定的 jpa 考试感到困惑

转载 作者:塔克拉玛干 更新时间:2023-11-01 22:30:48 33 4
gpt4 key购买 nike

给出了以下来源:

public void create ()
{
try {
doA () {
} catch (PersistenceException e) {}
try (doB) ();
} catch (PersistenceException e) {}
}

调用方法 doA 将导致抛出 NonUniqueResultException。调用方法 doB 将导致抛出 EntityExistsException。哪两个选项描述了在应用程序中调用创建的方法时会发生什么,使用容器管理的事务? (选择两项):

  • A.永远不会调用方法 doB()
  • B. doA()执行后,当前事务将继续。
  • C.当前事务将在 doB() 执行后继续。
  • D.当 doA() 被调用时,当前事务将被标记为回滚。
  • E。当 doB() 被调用时,当前事务将被标记为回滚。

在我看来,正确答案是 B、E。

最佳答案

假设语法正确的版本:

public void create() {
try {
doA ();
} catch (PersistenceException e) {}
try {
doB();
} catch (PersistenceException e) {}
}

A.方法 doB() 将永远不会被调用 声明,因为抛出的 NonUniqueResultException,即扩展 PersistenceException 被捕获,流程的下一步是调用 doB()。

B.当前事务将在 doA() 执行后继续true,因为如文档所述,NonUniqueResultException不会导致事务被标记为回滚。

C.当前事务将在 doB() 执行后继续false,因为EntityExistsException标记 Activity 事务以进行回滚。

D.当调用 doA() 时,当前事务将被标记为回滚这是,因为声明 B 的原因已说明,NonUniqueResultException 不会将事务标记为回滚。

E.当 doB() 被调用时,当前事务将被标记为回滚 true,因为声明 C 的原因,EntityExistsException 将事务标记为回滚。

关于java - 对事务和锁定的 jpa 考试感到困惑,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11719169/

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