2012-05-17 78 views
0

我有一個數據庫在其列名稱中使用「 - 」。Hiberante和SQL Server列名

system-test-id 

我映射表在Hibernate中,但是當我嘗試選擇所有的,例如,我得到這個錯誤:

Invalid column name "system" 

注意,僅取第一個字作爲列名。

在休眠

選項show_sql顯示我:

select this_.system-test-id as system1_0_0_ (...) 

編輯

我不得不在列名添加\」的映射:

@Id 
@Column(name="\"system-test-id\"") 
private long systemTestId; 
+0

如果它是一個選項,我會簡單地用下劃線重新命名你的列。 –

+0

然後你的專欄名稱是「system-test-id」,而不僅僅是system-test-id! – zaga250

+0

沒有。當我在SQL Server界面中創建數據庫時,我沒有放置任何引號。 – lcguida

回答

1

@Column(名稱= 「\」 系統測試-ID \ 「」)是處理引號的標識符JPA定義的方式。

Hibernate必須使用batck蜱多一點友好的語法:@Column(name =「system-test-id」)

背蜱(`)或嵌入雙引號表示標識符應該被引用和被替換用方言專用標識符引用。

1

請檢查的區別在

之間
create table #t 
(
    [id-Column] int 
) 

create table #t 
(
    id-Column int 
)