2012-06-15 2 views
3

을 감안할 때 : INSERT INTO foo VALUES()를하고 생성 된 키를 다시 얻을 :JOOQ : 자동 증가 키를 반환 하시겠습니까?

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

내가 호출하고 싶습니다. 나는 jOOQ insert query with returning generated keys에서 발견 된 다음과 같은 사항을 시도했지만 내가 호출 할 때 :

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

JOOQ가 null 대신에 생성 된 키의 반환합니다. 이거 버그 야?

답변

3

이것은 FieldMapsForInsert.isExecutable()의 버그 인 것 같습니다. 그것은 위 쿼리를 실행 불가능한 것으로 플래그 지정하지만 MySQL에서는 유효합니다. 내가 제출 한 파일

NULLworkaround으로 삽입 할 수 있습니다. 또한 테이블 "관계"를 생성하도록 JOOQ를 구성해야합니다. 그렇지 않으면 returning()은 기본 키의 존재를보고 null을 반환하지 않습니다.

<configuration> 
    <generator> 
    <generate> 
     <relations>true</relations> 
    </generate> 
    </generator> 
</configuration>