【发布时间】:2019-03-15 13:07:28
【问题描述】:
我正在使用 Java 开发 REST api,使用 JAX-RS、EJB、JPA 和 JasperReports,基本上 API 调用返回 id 的 oracle 函数,我使用该 id 进行选择并使用 Jasper Reports 生成报告,然后我将报告作为响应发送,工作正常。
但是,我对是否应该使用 EJB 有一些疑问,因为我不明白为什么在这种情况下应该使用 EJB,因为 oracle 函数内部有提交,如果出现问题,回滚由触发EJB不会什么都不做吧?另外,生成报告的选择很简单,只有一张表,我看到一些文章说,如果你只做一个选择,就不需要使用 EJB 来控制事务。
另外,在这种情况下如何使用 CDI?类中的@Named 和字段中的@Inject?我有一些同事说@Named 应该只与 JSF 一起使用,但我是一名大三学生,正在寻找关于这个的真相,经过大量研究后我仍然不知道如何处理这个问题,我感谢任何帮助。 谢谢!
【问题讨论】:
-
我认为您在想象在没有 EJB 的情况下使用 EJB 会产生一些成本。当它也是一个可池化、可监控、可重用的对象时,您会将其视为事务管理器。在不增加解决方案复杂性的情况下,对于 CDI bean(此时)不能这样说。