У меня есть какой-то код, который создает таблицу, затем другой код пытается загрузить экземпляр 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