2010-06-25 2 views
3

У меня есть несколько слушателей Hibernate Envers, которые я использую для аудита. Я только начинаю работать на CDI и до сих пор приятно удивлен его простотой и мощью. Поскольку кажется, что все интегрирует функциональность CDI, я думал, что поставил бы вопрос, поддерживает ли Hibernate его или нет?Hibernate - CDI

Не только неплохо иметь доступ к различным компонентам, но также было бы неплохо иметь доступ к другой контекстной информации и не ограничиваться интерфейсами Hibernate.

ответ

1

Вопрос должен быть наоборот: будет ли CDI поддерживать интеграцию спящего режима.

Что КДИ должен поддерживать, вероятно, через расширение, является:

  • нагнетание EntityManager где есть @PersistenceContext и EntityManagerFactory где есть @PersistenceUnit
  • транзакций и жизненный цикл сеанса обработки

Google для «Контекст сохранения сварки», и вы получите несколько примеров использования Hibernate (JPA) с Weld, который является эталонной реализацией CDI. Прочитайте также this thread. И this example

+0

Возможно, так оно и должно было бы работать. Я хочу получить легкий доступ к контекстной информации, которую предоставляет CDI. Я хочу добавить компоненты в своих слушателей, чтобы оценить безопасность или сделать другие сложные вещи с минимальными усилиями. –

+0

К вашему моменту я работаю над расширением CDI, которое позволяет вам писать запросы с помощью интерфейса. Подобно использованию @NamedQuery, вы будете писать свой фактический запрос по методу. Этот метод позволит вам указать параметры для вашего запроса, а также тип возвращаемого типа, обеспечивающий безопасность типа, в то время как запрос Entity Query - нет. Я также хотел бы, чтобы это было подключено к @Producer/@WebRemote, чтобы вы могли легко иметь веб-сервис с 3 строками кода. –

+0

Я еще не получал @PersistenceContext в автономных приложениях. –