0

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

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

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

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

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

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

4

2 回答 2

1

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

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

于 2012-10-12T15:50:01.997 回答
0

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

于 2012-10-14T12:05:17.780 回答