我是Java EE世界的初学者,我遇到了EJB的问题,实际上我刚刚学习了无状态EJB,我将它用于我的DAO,其中注入了EntityManager并做了一些CRUD,但我我不知道关于他们的任何其他事情,我读过他们的一个主要优点是他们的交易"或类似的事情,我做了很多研究,但我仍然无法理解这意味着什么。
你能否告诉我们为什么有些人讨厌EJB,他们不喜欢什么?什么是"交易"事情?我应该每次都使用无状态作为DAO而不是POJO吗?
或者,如果您有任何有用的初学者链接,请提前感谢。
答案 0 :(得分:2)
简单地说,为了模拟交易,程序可能需要执行多个步骤。例如,银行计划可能会将资金从一个帐户转移到另一个帐户。它将包含以下伪代码中列出的步骤:
begin transaction
checking first account
take money
send money
compute and save result
update history log
commit transaction
这五个步骤都必须完成,或者根本不完成。否则,数据完整性就会丢失。
交易只能以两种方式结束:
- 提交
- 回滚。
当事务提交时,其语句所做的数据修改都将永久保存。如果事务中的语句失败,则事务回滚,撤消事务中所有语句的影响。
而EJB正在为我们做这些困难的事情。 :)
我在这里学习了很长时间http://www.coreservlets.com/。
更新1
与EJB事务相关的一些链接