在我的应用中,我使用eclipselink和标准api。
我的数据库有一个名为“order”的列表。
问题是当我使用条件api来创建一个select它做了这个sql:
SELECT id, order, name, phone, uri FROM campus
它抛出异常,因为“order”是sql中的restrict关键字
如何强制条件api在列名中加上引号?
答案 0 :(得分:1)
最简单(和恕我直言)最好的方法是将order
更改为campus_order
或类似的内容,并避免使用SQL关键字作为字段标识符。这种做法通常会导致问题。
我很高兴知道标准API对此问题有一些解决方法,但我建议您重命名该列。今天你正在使用标准API,明天你将使用别的东西...但是在一天结束时,生成好的旧SQL并且你想要的最后一个想法是找到你的一个查询不起作用因为列名等于SQL版本之一的关键字。
答案 1 :(得分:0)
重命名字段是一个更容易的选项,但JPA将引用分隔字段。要将其标记为分隔,只需在定义列时添加引号:“\”order \“”。