Java EE,事务在 EJB 中是什么意思?
Java EE, what does Transactions mean in EJBs?
我是 Java EE 世界的初学者,我对 EJB 有疑问,事实上我刚刚学习了无状态 EJB,我将它用于我的 DAO,并在其中注入了 EntityManager 并执行一些 CRUD,但我对它们一无所知,我读到它们的主要优点之一是它们是 "transactional" 或类似的东西,我做了很多研究,但我仍然可以'不太明白这到底是什么意思
您能说说为什么有些人讨厌 EJB,他们不喜欢 EJB 的原因有哪些? "transaction" 是什么东西?我应该每次都使用 Stateless 作为 DAO 而不是 POJO 吗?
或者,如果您有任何对初学者有用的链接,请提前致谢。
简单地说,为了模拟交易,程序可能需要执行多个步骤。例如,银行程序可能会将钱从一个帐户转移到另一个帐户。它将由以下伪代码中列出的步骤组成:
begin transaction
checking first account
take money
send money
compute and save result
update history log
commit transaction
要么必须完成所有这五个步骤,要么 none 全部完成。否则,数据完整性将丢失。
一笔交易只能以两种方式结束:
- 提交
- 有回滚。
事务提交时,其语句对数据的修改全部永久保存。如果事务中的语句失败,则事务回滚,撤消事务中所有语句的影响。
EJB 正在为我们做所有这些困难的事情。 :)
在这里学习了很久http://www.coreservlets.com/ .
更新 1
一些与 EJB 事务相关的链接
我是 Java EE 世界的初学者,我对 EJB 有疑问,事实上我刚刚学习了无状态 EJB,我将它用于我的 DAO,并在其中注入了 EntityManager 并执行一些 CRUD,但我对它们一无所知,我读到它们的主要优点之一是它们是 "transactional" 或类似的东西,我做了很多研究,但我仍然可以'不太明白这到底是什么意思
您能说说为什么有些人讨厌 EJB,他们不喜欢 EJB 的原因有哪些? "transaction" 是什么东西?我应该每次都使用 Stateless 作为 DAO 而不是 POJO 吗?
或者,如果您有任何对初学者有用的链接,请提前致谢。
简单地说,为了模拟交易,程序可能需要执行多个步骤。例如,银行程序可能会将钱从一个帐户转移到另一个帐户。它将由以下伪代码中列出的步骤组成:
begin transaction
checking first account
take money
send money
compute and save result
update history log
commit transaction
要么必须完成所有这五个步骤,要么 none 全部完成。否则,数据完整性将丢失。
一笔交易只能以两种方式结束:
- 提交
- 有回滚。
事务提交时,其语句对数据的修改全部永久保存。如果事务中的语句失败,则事务回滚,撤消事务中所有语句的影响。
EJB 正在为我们做所有这些困难的事情。 :)
在这里学习了很久http://www.coreservlets.com/ .
更新 1
一些与 EJB 事务相关的链接