Je veux utiliser AspectJ pour attraper un NoResultException
et retourner null à la place.
(Il est évident que je suis un noob Aspect)AspectJ comment attraper une exception NoResultException et retourner null à la place
est ici la méthode qui fait l'interrogation:
@Override
public Company getCompanyBySomeNumber(String someNumber) {
TypedQuery<Company> query = em.createQuery("select c from Company c where c.someNo = ?1", Company.class);
query.setParameter(1, someNumber);
return query.getSingleResult();
J'ai plusieurs centaines de ces appels et je ne veux pas la litière chacun avec try/catch
pour remplacer le NoResultException
par un résultat nul. Donc je veux écrire un aspect pour attraper l'exception et changer le résultat en null
.
Voici le code aspect (veuillez noter que j'utilise des annotations). Quelque chose comme ceci:
@Aspect
public class NullifyNoResultException {
@Pointcut("execution(my.namespace.where.the.queries.are * *Throwable(..))")
void throwableMethod() {}
@Around("throwableMethod()")
public void swallowThrowing(ProceedingJoinPoint pjp) {
try {
pjp.proceed();
} catch (NoResultException nre) {
//TODO change the return value to null
Comment puis-je modifier la valeur de retour à null