排他制御後の画面制御をさらにhogeる

前記事のネタがお蔵入りになったので、ついカットなってもうちょっと頑張って
みた。


updateメソッドが実行されたかをInterceptorでチェックし、
メッセージのプロパティをEntityの型にあわせるように設定すると
ServiceでOverrideしなくても同じようなことが出来るようになります。

public class Excl2Interceptor extends AbstractInterceptor {

  public Object invoke(MethodInvocation invocation) throws Throwable {

    String methodName = invocation.getMethod().getName();

    if (methodName != null && methodName.equals("update")) {
      try {
        return invocation.proceed();
      } catch (OptimisticLockException lockException) {
        Object[] args = invocation.getArguments();
        String entityName = args[0].getClass().getSimpleName();
        throw new ActionMessagesException("message1","table." + entityName );
      }
    } else {
        return invocation.proceed();
    }
  }
}

ここまでやれば、かなりいい感じになるのかなと。
まあ、これも日の目を見れないと思いますが。