読者です 読者をやめる 読者になる 読者になる

この日記は私的なものであり、所属会社の見解ではありません。 GitHub: takahashikzn

EclipseLinkで悲観ロック

EclipseLink

次のようにします。

import org.eclipse.persistence.config.*;

public class JPADialect {

    ...

    public void setPessimisticLock(final Query query, final boolean nowait) {
        if (nowait) {
            query.setHint(QueryHints.PESSIMISTIC_LOCK, PessimisticLock.LockNoWait);
        } else {
            query.setHint(QueryHints.PESSIMISTIC_LOCK, PessimisticLock.Lock);
        }
    }

}

このコードはEclipseLinkの固有クラスを使用しています。
実際は上記のようなJPADialectクラス、およびJPADialectFactoryを作成して、本体コードとEclipseLinkに密結合しないように実装するのが良いでしょう。