我有一个在其列名中使用“ - ”的数据库。
实施例
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;
答案 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
")
反向标记(`)或嵌入的双引号表示应引用标识符,并用特定于方言的标识符引用替换。