(注:このブログはもう更新していません)この日記は私的なものであり所属会社の見解とは無関係です。 GitHub: takahashikzn

[クラウド帳票エンジンDocurain]

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に密結合しないように実装するのが良いでしょう。