【问题标题】:Can we create a table using JPA QueryDSL我们可以使用 JPA QueryDSL 创建表吗
【发布时间】:2019-02-27 15:31:32
【问题描述】:

我正在使用 JPA QueryDSL 从 DB 中查询数据,效果很好。 现在我有一个用 JPA QueryDSL 编写的复杂选择查询,我需要使用它创建一个如下所示的临时表(POSTGRES)。

create TEMP table temp as (select * from XYZ.)

任何人都可以帮助解决如何使用 JPA QueryDSL 定义上述查询。 是否可以使用 JPA QueryDSL 处理 DDL?

我们将非常感谢您对我的问题提出的建议。

【问题讨论】:

    标签: java postgresql hibernate jpa querydsl


    【解决方案1】:

    这在现有框架内是不可能的。我强烈建议在应用层创建表是一个坏主意。必须在运行时创建 JPA 实体类等。您能否在架构中创建一个标准表并将其用于临时数据,并在运行结束时将其清空?

    【讨论】:

    • 从 XYZ 中选择 *。是完全动态的。尤其是列数有时也可以是 20 或最多 130。
    • 有一个非常大的表,我们在查询时遇到了困难。由于查询需要很长时间才能响应,我们想到了这种方法。我们没有直接查询大表,而是考虑用这个选择查询创建一个新的临时表,然后直接从那里查询。
    • 所以我没有使用 JPA,而是使用普通 JDBC 来创建临时表。
    • 您是否考虑过调整查询,可能会添加索引?
    • 查询已经有索引。让我知道如果我继续从应用程序级别创建本地临时表会发生什么。会不会影响整体表现。为什么你认为这是一个坏主意?如果只是关于内存,则为临时表分配 64 GB。我们也在一个线程之后立即删除它们。
    猜你喜欢
    • 1970-01-01
    • 2011-08-26
    • 2020-09-24
    • 1970-01-01
    • 2011-04-25
    • 1970-01-01
    • 1970-01-01
    • 2017-03-27
    • 1970-01-01
    相关资源
    最近更新 更多