Доступ к таблице базы данных через JPA Vs. EJB в веб-приложении

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

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

2 ответа

Ответ "оба".

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

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

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

@Stateless
public class FooService {

    @PersistenceContext
    private EntityManager entityManager;

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

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

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

Другие вопросы по тегам