EJB3 без JPA

Я хочу использовать только объекты EJB3 и DAO для уровня DAO. Я хотел бы избежать JPA, насколько это возможно.

Вариант использования следующий:

  1. Мой EJB3 вызывает DAOObject.putOrder()
  2. DAOObject использует Spring jdbcTemplate для запроса базы данных.

Это возможно? Как это влияет на объем транзакции.

Пожалуйста, пример был бы отличным.


person user1872598    schedule 03.12.2012    source источник


Ответы (2)


Вы можете использовать EJB без JPA. Просто не используйте его :-).

Транзакциями управляет DataSource на уровне подключения, поэтому вы можете свободно использовать как JDBC, так и JPA даже в одном проекте. Конечно, необработанный JDBC также должен работать. Помните, что по умолчанию каждый метод сеансового компонента EJB является транзакционным.

person Tomasz Nurkiewicz    schedule 03.12.2012

Конечно, это возможно. Вставьте DataSource в свой DAO (используя аннотацию @Resource), создайте JdbcTemplate из этого внедренного DataSource и используйте JdbcTemplate внутри методов DAO. Источник данных вернет соединение, привязанное к текущей транзакции JTA.

person JB Nizet    schedule 03.12.2012