Мне нужно выполнить проверку на основе результата SQL-запроса.Настройка проверки Hibernate для bean-компонента
Запрос определяется как аннотация - как @NamedQuery в моем объекте bean.
Согласно Hibernate документации (doc), есть возможность проверить боб на следующих операций:
до обновления
предварительно вставить
предварительно удалить
выглядит следующим образом:
<hibernate-configuration>
<session-factory>
...
<event type="pre-update">
<listener class="org.hibernate.cfg.beanvalidation.BeanValidationEventListener"/>
</event>
<event type="pre-insert">
<listener class="org.hibernate.cfg.beanvalidation.BeanValidationEventListener"/>
</event>
<event type="pre-delete">
<listener class="org.hibernate.cfg.beanvalidation.BeanValidationEventListener"/>
</event>
</hibernate-configuration>
Вопрос в том, как для подключения моего компонента с конфигурацией проверки, описанной выше.
обновление:
объект класса
...
@Entity
@NamedQuery(name = "isValutaKursExists", query = "SELECT id FROM CurrencyRate WHERE bankId = :bankNum")
@Table(name = "Currency")
public class Currency {
...
Благодарим за ответ, Паскаль. Да, проверка должна выполняться по результату SQL. Поток следующий: в случае, если результат запроса не пуст, транзакция для этого объекта должна быть выполнена. – sergionni
@sergionni Добро пожаловать. Но я боюсь, что проверка Bean не является правильным инструментом для вашего потока. AFAIK, проверка Bean для, ну, проверка боба, а не проверка результатов запроса. –
Спасибо, Паскаль, я обновил сообщение (добавлена часть класса объекта). Таким образом, возможным шагом является разработка еще одного класса, чего-то. как CurrencyValidator, в котором я должен реализовать getNamedQuery («isValutaKursExists»)? – sergionni