Я пишу метод, который вставляет или обновляет запись в таблице mysql, а обновление происходит только тогда, когда поле «sample_time» больше, чем это значение текущей записи в таблице. Вот как я хочу это сделать сейчас.jooq mysql select by <R extends Record> уникальные ключи, независимо от имени поля
public <R extends Record> void upsertRecord(Table<R> table, R record) {
Connection conn = getConnection();
DSL.using(getConfiguration()).transaction(configuration -> {
try (DSLContext dslContext = DSL.using(configuration)) {
R old = // select with unique keys of table
// something like if (old.get("update_time) < record.get("update_time"))
dslContext.insertInto(table).set(record).onDuplicateKeyUpdate().set(record).execute();
conn.commit();
// }
} catch (SQLException e) {
// TODO
} finally {
closeConnection(conn);
}
});
}
Но я не знаю, как выбрать уникальные ключи пластинки, не обращая внимания на точное имя поля или номер поля. Так что мой вопрос:
- , как я мог бы реализовать «выбрать уникальные ключи пластинки, не обращая внимания на точное имя поля или поля числа»
- или иначе, как я мог бы использовать обусловливающие дубликата обновление с условием в jooq
Заранее благодарим за любую помощь!
Вы, кажется, осуществляет «оптимистическую блокировку» на вершине jOOQ. Знаете ли вы об этой функции? https://www.jooq.org/doc/latest/manual/sql-execution/crud-with-updatablerecords/optimistic-locking –