DropwizardでDB登録時に自動生成されるID値を取得する

どうも、ざわです。

最近寒くなってきましたね。朝震えております。

さて、備忘録ネタです。

やること

INSERT時に自動連番(AUTO INCREMENT)されるIDを取得する方法をかきます。

  • Dropwizard
  • JDBI
  • PostgreSQL

Before

まず基本的なやつですね。これは戻り値に登録件数を返します。

@SqlUpdate("INSERT INTO hoge_table (...) VALUES (...)")
public abstract int create(@BindBean("hoge") Hoge hoge);

連番カラムを取得する方法

@GetGeneratedKeysを追加します。
これで登録後のインクリメント値を取得できます。

@GetGeneratedKeys
@SqlUpdate("INSERT INTO hoge_table (...) VALUES (...)")
public abstract int create(@BindBean("hoge") Hoge hoge);

特定のカラムを取得する方法

これは好きなカラムを指定できます。

@SqlQuery("INSERT INTO hoge_table (...) VALUES (...)  returning id;")
public abstract int create(@BindBean("hoge") Hoge hoge);
  • @SqlUpdate を @SqlQuery に変更
  • SQLの最後に「returning ほしいカラム」の形式で指定。

全部取得する方法

returning *で全カラムを取得します。

@SqlQuery("INSERT INTO hoge_table (...) VALUES (...)  returning *;")
public abstract Hoge create(@BindBean("hoge") Hoge hoge);
  • 戻り値をHogeにしています

おしまい

健康第一

サーバサイドエンジニア。オムライスが好物

シェアする

  • このエントリーをはてなブックマークに追加

フォローする