class MicronautJdbcStorageAccessor extends AbstractJdbcStorageAccessor {
    private final TransactionOperations<Connection> transactionManager;

    private final TransactionDefinition.Propagation propagation = TransactionDefinition.Propagation.REQUIRES_NEW;

    MicronautJdbcStorageAccessor(
            @NonNull TransactionOperations<Connection> transactionManager, @NonNull String tableName) {
        super(tableName);
        this.transactionManager = requireNonNull(transactionManager, "transactionManager can not be null");
    }

    @Override
    protected <T> T executeCommand(
            String sql, SqlFunction<PreparedStatement, T> body, BiFunction<String, SQLException, T> exceptionHandler) {<FILL_FUNCTION_BODY>}
}

        return transactionManager.execute(TransactionDefinition.of(propagation), status -> {
            try (PreparedStatement statement = status.getConnection().prepareStatement(sql)) {
                return body.apply(statement);
            } catch (SQLException e) {
                return exceptionHandler.apply(sql, e);
            }
        });
    
<methods>public void <init>(java.lang.String) ,public boolean extend(net.javacrumbs.shedlock.core.LockConfiguration) ,public boolean insertRecord(net.javacrumbs.shedlock.core.LockConfiguration) ,public void unlock(net.javacrumbs.shedlock.core.LockConfiguration) ,public boolean updateRecord(net.javacrumbs.shedlock.core.LockConfiguration) <variables>private final non-sealed java.lang.String tableName