Je dois effectuer une validation en fonction du résultat de la requête SQL.Configuration de la validation Hibernate pour le bean
La requête est définie en tant qu'annotation - @NamedQuery dans mon bean entité.
Selon Hibernate documentation (doc), il est possible de valider le haricot sur les opérations suivantes:
pré-insérer pré-mise à jour
pré-supprimer
ressemble:
<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>
La question est comment pour connecter mon haricot avec la configuration de validation, décrite ci-dessus.
mise à jour:
entité classe
...
@Entity
@NamedQuery(name = "isValutaKursExists", query = "SELECT id FROM CurrencyRate WHERE bankId = :bankNum")
@Table(name = "Currency")
public class Currency {
...
Merci de votre réponse, Pascal. Oui, la validation doit être effectuée sur le résultat SQL. Le flux suit: dans le cas où le résultat de la requête n'est pas vide, cette transaction pour cette entité doit être effectuée. – sergionni
@sergionni De rien. Mais j'ai peur que Bean Validation ne soit pas le bon outil pour votre flux. AFAIK, la validation de bean est pour, bien, la validation de bean, pas la validation de résultat de requête. –
Merci, Pascal, j'ai mis à jour la publication (partie de classe d'entité ajoutée). Donc, l'étape possible est de développer une classe de plus, quelque chose. comme CurrencyValidator, dans lequel je devrais implémenter getNamedQuery ("isValutaKursExists")? – sergionni