3

与えられた:

CREATE TABLE foo (id BIGINT NOT NULL AUTO_INCREMENT, PRIMARY KEY(id));

呼び出したいのですがINSERT INTO foo VALUES()、生成されたキーを取得します。jOOQ挿入クエリで見つかったアドバイスに従って、生成されたキーを返すことを試みましたが、呼び出すと:

RoomsRecord record = db.insertInto(foo, Collections<Field<?>>emptyList()).returning(foo.ID).fetchOne();

JOOQ は、生成されたキーの代わりに null を返します。これはバグですか?

4

1 に答える 1

3

これは FieldMapsForInsert.isExecutable() のバグのようです。上記のクエリに実行不可のフラグが付けられますが、MySQL では合法です。https://github.com/jOOQ/jOOQ/issues/20に提出しました

回避策NULLとして挿入できます。さらに、テーブルの「リレーション」を生成するように JOOQ を構成する必要があります。そうしないと、主キーの存在が認識されず、null が返されます。returning()

<configuration>
  <generator>
    <generate>
      <relations>true</relations>
    </generate>
  </generator>
</configuration>
于 2012-06-15T18:34:35.800 に答える