0

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

例子

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;
4

2 回答 2

1

@Column(name="\"system-test-id\"") is the JPA defined way to handle quoted identifiers.

Hibernate has a little more friendly syntax using batck-ticks: @Column(name="system-test-id")

The back-ticks (`) or embedded double-quotes indicate the identifier should be quoted and are replaced with dialect-specific identifier quoting.

于 2012-05-17T19:58:34.703 回答
1

请检查两者之间的区别

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

create table #t
(
    id-Column int
)
于 2012-05-17T18:21:46.020 回答