2010-03-08 8 views
1

J'ai un point final Spring WS et Validator mapper un webservice qui sert à insérer dans le dabatabase quelques mots-clés:intercepteurs

@Transactional(readOnly = false,isolation= Isolation.SERIALIZABLE) 
public Source saveKW(...). 

L'entrée est une demande.

Je voudrais ajouter un intercepteur sur la méthode afin de valider les paramètres. celui-ci lira certaines valeurs de la base de données. Je voudrais que cet intercepteur soit EMBED dans la transaction déclarée pour le point de terminaison (ou ce contraire). En d'autres termes, je veux qu'ils soient dans la même transaction.

Idéalement im la recherche de quelque chose comme ça avec l'annotation:

@Transactional(readOnly = false,isolation= Isolation.SERIALIZABLE) 
@validator("KeyWordValidaor.class") 
public Source saveKW(...) 

KeyWordValidaor sera la classe de valider les paramètres. Avez-vous une idée ou de courts exemples pour implémenter ceci de cette façon ou d'une autre manière?

+0

À qui la validation doit-elle appartenir dans la transaction? Il semble que votre validation d'entrée soit indépendante de la transaction. – skaffman

Répondre

1

La validation doit être dans la transaction car elle interroge la base de données pour tester les contraintes par exemple. J'ai déjà trouvé ma solution. Im utilisant spring aop & je charge dynamiquement le validateur approprié du contexte de printemps à travers une carte. (très & caractéristique inconnue des noms de fils inconnus autorwired à l'avance!). Grâce à l'attribut order, il se trouve dans la transaction.

Questions connexes