JOOQ-从meta()获取临时表

时间:2019-05-05 09:14:09

标签: java sql postgresql jooq

我有一些代码可以创建一个表,然后使用不同的代码尝试使用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

0 个答案:

没有答案