JOOQ - получить временную таблицу из meta () - PullRequest
1 голос
/ 05 мая 2019

У меня есть какой-то код, который создает таблицу, затем другой код пытается загрузить экземпляр Table<?> с учетом этого имени таблицы, используя DSLContext.meta()

Создать таблицу

        DSLContext db = getDslContext();
        String tempTableName = "temp_" + System.currentTimeMillis();
        db.createTemporaryTable(tempTableName).as(select(fields)
                .from(downstreamTable)
                .limit(0)).execute();

Получить экземпляр таблицы

        Optional<Table<?>> table = db.meta().getTables().stream()
                .filter(t -> t.getName().equals(tableName))
                .findFirst()

Ожидается - таблица будет возвращена, однако она не найдена.Также временная схема не найдена в meta().getSchemas()

Я знаю, что могу создать таблицу, используя DSL.table(), но я хочу получить все поля, используя table.fields ().В настоящее время мне нужно создать свой собственный маленький класс Table, который будет содержать имя и поля, но это выглядит очень неправильно.

Приведенный выше код работает, если я создаю реальную таблицу вместо временной таблицы.Есть ли способ заставить его работать, используя временную таблицу, либо находя таблицу в meta (), либо создавая ее так, чтобы table.fields () возвращал поля таблицы?

Версии

  • Postgres 9,5
  • Jooq 3.10.8
  • Postgresql драйвер 9.4.1212.jre7
...