2012-12-05 33 views
0

我的實體類如何處理JPA/JPQL與SQL Server關鍵字

@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

呼叫:選擇代碼,DESC FROM master_stccycode 查詢:ReportQuery(referenceClass = MasterStccycode SQL = 「SELECT CODE,DESC FROM master_stccycode」)

我知道該溶液是將DESC關鍵字包裝爲[DESC],但我怎麼能在JPA QL上做到這一點?

回答

1

DESC是大多數數據庫的保留字。您應該重命名該字段。

你也可以引用該字段,但只是重命名它是最好的。

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