Доступ к таблице базы данных через JPA Vs.EJB в веб-приложении - PullRequest
4 голосов
/ 09 января 2011

Я проектирую веб-приложение , которое обращается ко многим таблицам базы данных.Я пытаюсь выяснить, какой предпочтительный способ доступа к этим таблицам?Это через JPA или EJB?

Спасибо, Натан

Ответы [ 2 ]

12 голосов
/ 09 января 2011

Ответ «оба».

Сам EJB не имеет доступа к таблицам БД.Все, что вы делаете в Java, что касается БД, происходит через Java Persistence API (JPA), или если вы хотите делать низкоуровневые вещи через JDBC, но давайте не будем вдаваться в это здесь.Таблица очень простое управление транзакциями.Вы всегда нуждаетесь в них с JPA, и немного неудобно управлять ими вручную.EJB также предоставляет вам очень простой доступ к основному классу, который вы будете использовать в JPA для взаимодействия с БД: диспетчер сущностей.

Практическое использование EJB для многих простых и легких ситуаций - не более чем добавление@ Безголосная аннотация к бину:

@Stateless
public class FooService {

    @PersistenceContext
    private EntityManager entityManager;

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

Без EJB код для этого простого поиска был бы намного более подробным.А без JPA просто не было бы никакого кода.Как уже было сказано, EJB не имеет функций для доступа к БД.

0 голосов
/ 09 января 2011

Если вы на самом деле не строите корпоративную систему и не нуждаетесь в дополнительной сложности EJB, просто используйте JPA.Для меня это звучит так, как будто вы просто строите веб-приложение, и вам нужен простой доступ к БД - переходите на JPA.Мы используем OpenJPA и не имеем проблем с ним.

...