2014-10-19 44 views
4

什麼其實我是想在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()