3

小さな新しいプロジェクトのために、JDBIを試してみることにしました (通常は hibernate/jpa を使用します)。

@SqlUpdate/@SqlQuery を使用した軽量のアノテーション ベースの dao 作成が気に入っています。

ただし: エンティティを作成するか、既存のエンティティを更新するか、確信が持てない場合があります。「select」ステートメントを配置し、その戻り値に応じて、insert または update ステートメントを使用します。

質問: これは、jdbi の「インターフェースのみ」の dao で何らかの形でサポートされていますか? または、「createOrUpdate」メソッドを自分で作成する必要がありますか (自動生成された dao を多かれ少なかれ時代遅れにします)?

ヒントをありがとう。

4

1 に答える 1

5

@zloster のおかげで、インターフェイスではなく抽象クラスに基づくソリューションを構築できるようになりました。必要に応じて機能します。

@SqlUpdate("insert ...")
public abstract void insert(...);

@SqlUpdate("update...")
public abstract void update();

public X createOrUpdate(final X x) {
    if (!exists(x)) {
        insert(x);
    } else {
        update(x);
    }
    return find(...);
}
于 2014-11-09T17:40:49.917 に答える