2014-10-19 2 views
4
에서 KEY를 복제

내가 실제로 원하는 것은 JOOQ에서 다음 쿼리를 작성하는 것입니다 :반환 ID가 JOOQ

stmt = connection.prepareStatement(
    "INSERT INTO `tbl` (`name`, `service_id`, `device_id`) VALUES (?, ?, ?) ON DUPLICATE KEY UPDATE `id` = LAST_INSERT_ID(`id`)", 
    Statement.RETURN_GENERATED_KEYS 
); 

나는 JOOQ에서이 작업을 수행 할 수있는 방법을 찾을 수 없습니다입니다. 가능한가? 현재

답변

0

이 당신을 도울 수 있습니다. 당분간 저는 이것을 사용하고 있습니다 :

Field<Integer> LAST_INSERT_ID = DSL.function("LAST_INSERT_ID", Integer.class, PACKAGE.ID); 

dsl.insertInto(PACKAGE) 
    .set(dsl.newRecord(PACKAGE, packagePojo)) 
    .onDuplicateKeyUpdate() 
    .set(PACKAGE.ID, LAST_INSERT_ID) 
    .set(PACKAGE.PTR_JOB, packagePojo.getPtrJob()) 
    .set(PACKAGE.PACK_NUMBER, packagePojo.getPackNumber()) 
    .set(PACKAGE.RACK, packagePojo.getRack()