我想使用 AspectJ 来捕获 aNoResultException
并返回 null 。
(显然我是一个方面菜鸟)
这是执行查询的方法:
@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();
我有数百个这样的电话,我不想把每个电话都用 a 乱扔以将try/catch
其更改NoResultException
为空结果。
所以我想写一个方面来捕获异常并将结果更改为null
.
这是方面代码(请注意我正在使用注释)。像这样的东西:
@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
如何将返回值更改为 null