是否可以在sqlite中使用'index'作为列名?

时间:2012-03-01 19:51:15

标签: hibernate sqlite

是否可以在sqlite中使用index作为列名?

当我尝试执行此查询时,它是使用hibernate / jpa生成的:

select
    metadatait0_.id as id25_,
    metadatait0_.guid as guid25_,
    metadatait0_.index as index25_,
    metadatait0_.library_section_id as library7_25_,
    metadatait0_.metadata_type as metadata4_25_,
    metadatait0_.parent_id as parent5_25_,
    metadatait0_.title as title25_ 
from
    metadata_items metadatait0_

我收到以下错误:

org.hibernate.exception.GenericJDBCException: could not execute query
at org.hibernate.exception.SQLStateConverter.handledNonSpecificException(SQLStateConverter.java:140)
...
Caused by: java.sql.SQLException: [SQLITE_ERROR] SQL error or missing database (near "index": syntax error)

2 个答案:

答案 0 :(得分:3)

尝试在方括号中包含列名:

metadatait0_.[index] as index25_,

答案 1 :(得分:2)

我会回避它; index可能是您的RDBMS中的关键字。我将其重命名为其他内容。

此引文称INDEX是SQLite中的关键字:

http://www.sqlite.org/lang_keywords.html