如何使用SQL Server关键字处理JPA / JPQL

时间:2012-12-05 11:49:02

标签: sql-server jpa keyword jpql

我的实体类

@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 Persistence Services - 2.3.0.v20110604-r9504):org.eclipse.persistence.exceptions.DatabaseException

     

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

     

错误代码:156

     

调用:从master_stccycode中选择CODE,DESC   查询:ReportQuery(referenceClass = MasterStccycode sql =“SELECT CODE,DESC from master_stccycode”)

我知道解决方案是将DESC关键字与[]一起打包到[DESC]但是如何在JPA QL上执行此操作?

1 个答案:

答案 0 :(得分:2)

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

您也可以引用该字段,但只需将其重命名即可。

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