我需要基於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