Интересно .. вы также можете попробовать определить сервер имен в файле /etc/resolv.conf, который должен выглядеть примерно так:
nameserver 10.0.0.50 10.0.0.51
Просто используйте transactionResult:
String primaryKey = dslContext.transactionResult(
(Configuration c) -> {
return this.postgresService.insertData(c, table, map);
});
Вы можете создать класс-оболочку для хранения восстановленного значения:
class PrimaryKeyWrapper{
Record primaryKey;
public void setPrimaryKey(Record primaryKey) {
this.primaryKey = primaryKey;
}
public Record getPrimaryKey() {
return primaryKey;
}
}
И использовать и экземпляр этого класса для сохранения этого значения изнутри лямбда-функции:
PrimaryKeyWrapper primaryKeyWrapper = new PrimaryKeyWrapper();
dslContext.transaction(
c -> {
Record primaryKey = this.postgresService.insertData(c, table, map);
primaryKeyWrapper.setPrimaryKey(primaryKey);
});
Наконец, вы можете получить значение извне:
primaryKeyWrapper.getPrimaryKey();