【问题标题】:How can the criteria api add quote to the column?标准 api 如何在列中添加引号?
【发布时间】:2012-10-12 15:40:25
【问题描述】:

在我的应用程序中,我使用 eclipselink 和标准 api。

我的数据库有一个表,其中有一个名为“order”的列。

问题是当我使用标准 api 创建一个选择时,它产生了这个 sql:

SELECT id, order, name, phone, uri FROM campus

它抛出一个异常,因为“order”是sql中的一个restrict关键字

如何强制条件 api 在列名中加上引号?

【问题讨论】:

    标签: java sql eclipselink criteria-api


    【解决方案1】:

    最简单(恕我直言最好)的方法是将order 更改为campus_order 或类似的东西,并避免使用SQL 关键字作为字段标识符。这种做法通常会导致问题。

    我很高兴知道标准 API 可以解决此问题,但我建议您重命名该列。今天您正在使用标准 API,明天您将使用其他东西...但是最终生成了良好的旧 SQL,并且您想要的最后一个想法是发现您的一个查询不起作用,因为列名等于 SQL 版本之一的关键字。

    【讨论】:

      【解决方案2】:

      重命名字段是一个更简单的选择,但 JPA 将引用分隔字段。要将其标记为分隔,只需在定义列时添加引号:“\”order\“”。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 2015-11-26
        • 1970-01-01
        • 2021-09-08
        • 1970-01-01
        • 1970-01-01
        • 2015-11-27
        • 2019-07-06
        相关资源
        最近更新 更多