我需要基于SQL查询结果执行验证。为bean配置Hibernate验证
查询被定义为注释 - 如@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 {
...
谢谢你的回答,Pascal。是的,应该对SQL结果进行验证。流程如下 - 如果查询结果不为空,则应执行此实体的事务。 – sergionni 2010-05-16 16:19:04
@sergionni不客气。但是恐怕Bean Validation不适合你的流程。 AFAIK,Bean Validation适用于bean验证,而不是查询结果验证。 – 2010-05-16 18:10:09
谢谢,帕斯卡尔,我已更新帖子(添加实体类部分)。所以,可能的一步就是多发展一个班级。像CurrencyValidator,其中我应该实现getNamedQuery(“isValutaKursExists”)? – sergionni 2010-05-17 08:43:08