Hibernate和SQL Server列名

时间:2012-05-17 17:59:37

标签: sql-server hibernate sql-server-2005

我有一个在其列名中使用“ - ”的数据库。

实施例

system-test-id

我在Hibernate中映射了表,但是当我尝试选择all时,我得到了这个错误:

Invalid column name "system"

请注意,只有第一个单词被视为列名。

hibernate中的选项show_sql告诉我这个:

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

修改

我必须在映射的列名中添加\“

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

2 个答案:

答案 0 :(得分:1)

请检查

之间的区别
create table #t
(
    [id-Column] int
)

create table #t
(
    id-Column int
)

答案 1 :(得分:1)

@Column(name =" \" system-test-id \"")是JPA定义的处理带引号标识符的方法。

Hibernate使用batck-ticks有一个更友好的语法:@Column(name =" system-test-id")

反向标记(`)或嵌入的双引号表示应引用标识符,并用特定于方言的标识符引用替换。