NoResultException
AspectJ を使用して a をキャッチし、代わりに 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 を散らかして null の結果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 に変更するにはどうすればよいですか