排他制御後の画面制御をさらに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(); } } }
ここまでやれば、かなりいい感じになるのかなと。
まあ、これも日の目を見れないと思いますが。