【问题标题】:How to Deal JPA / JPQL with SQL Server Keyword如何使用 SQL Server 关键字处理 JPA / JPQL
【发布时间】:2012-11-23 05:49:04
【问题描述】:

我的实体类

@Entity
class MasterStccycode{
   private static final long serialVersionUID = 1L;
   @Id
   @Basic(optional = false)
   @NotNull
   @Size(min = 1, max = 3)
   @Column(name = "CODE")
   private String code;

   @Size(max = 100)
   @Column(name = "DESC")
   private String desc;
}

我的 JPA 查询 SELECT t.code, t.desc FROM MasterStccycode t

然后我有以下异常

异常 [EclipseLink-4002](Eclipse 持久性服务 - 2.3.0.v20110604-r9504):org.eclipse.persistence.exceptions.DatabaseException

内部异常:com.microsoft.sqlserver.jdbc.SQLServerException:关键字“DESC”附近的语法不正确。

错误代码:156

调用:SELECT CODE, DESC FROM master_stccycode 查询:ReportQuery(referenceClass=MasterStccycode sql="SELECT CODE, DESC FROM master_stccycode")

我知道解决方案是将带有 []DESC 关键字包装到 [DESC] 中,但我如何在 JPA QL 上做到这一点?

【问题讨论】:

    标签: sql-server jpa keyword jpql


    【解决方案1】:

    DESC 是大多数数据库的保留字。您应该重命名该字段。

    您也可以引用该字段,但最好重命名它。

    @Column(name = "\"DESC\"")
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2011-01-10
      • 1970-01-01
      • 1970-01-01
      • 2010-10-02
      • 1970-01-01
      • 2011-07-08
      • 2010-09-22
      相关资源
      最近更新 更多