通过JPA Vs访问数据库表。 Web应用程序中的EJB

时间:2011-01-09 12:30:09

标签: web-applications ejb jpa-2.0

我正在设计一个访问许多数据库表的 web-application 。 我想弄清楚访问这些表的首选方法是什么? 是通过JPA还是EJB?

谢谢, 森

2 个答案:

答案 0 :(得分:12)

答案是“两个”。

EJB本身不访问任何数据库表。您在Java中与数据库相关的所有操作都是通过Java持久性API(JPA)实现的,或者如果您想通过JDBC执行低级操作,但我们不会在此处进行操作。

EJB带来的是对事务的非常简单的管理。你总是需要那些有JPA的人,手动管理它们有点痛苦。 EJB还使您可以非常方便地访问将在JPA中与DB交互的主类:实体管理器。

在实践中使用EJB对于许多简单和轻量级的情况只不过是将@Stateless注释添加到bean中:

@Stateless
public class FooService {

    @PersistenceContext
    private EntityManager entityManager;

    public Foo getByID(Long fooID) {
        return entityManager.find(Foo.class, ID);
    }
}

没有EJB,执行此简单查找的代码将更多更详细。没有JPA,根本就没有任何代码。如前所述,EJB没有访问数据库的功能。

答案 1 :(得分:0)

除非您实际构建企业系统并且需要增加EJB的复杂性,否则只需使用JPA。听起来像你刚刚建立一个Web应用程序,你需要简单的数据库访问 - 去JPA。我们使用OpenJPA,并且没有任何问题。