我正在设计一个访问许多数据库表的web-application。我正在试图找出访问这些表的首选方法是什么?是通过JPA还是EJB?
谢谢你,内森
发布于 2011-01-09 12:49:44
答案是“两者兼备”。
EJB本身不访问任何DB表。您在Java中所做的与DB相关的任何事情都是通过(JPA)进行的,或者如果您想要通过JDBC来做低级别的事情,那么请不要在这里讨论这个问题。
EJB给表带来的是对事务的非常容易的管理。您总是需要那些与JPA,这是有点痛苦的手动管理。EJB还允许您非常容易地访问JPA中将用于与DB:实体管理器交互的主类。
实际上,在许多简单和轻量级的情况下使用EJB只不过是将@无状态注释添加到bean中:
@Stateless
public class FooService {
@PersistenceContext
private EntityManager entityManager;
public Foo getByID(Long fooID) {
return entityManager.find(Foo.class, ID);
}
}没有EJB,执行这一简单查找的代码将更加冗长。如果没有JPA,就不会有任何代码。如前所述,EJB没有访问DB的功能。
发布于 2011-01-09 15:58:17
除非您实际构建了企业系统,并且需要增加EJB的复杂性,否则只需使用JPA即可。这听起来就像你刚刚构建了一个网络应用程序,你需要简单的数据库访问-去JPA。我们使用OpenJPA,没有问题。
https://stackoverflow.com/questions/4639101
复制相似问题