0

列名に「-」を使用するデータベースがあります。

system-test-id

テーブルをHibernateでマッピングしましたが、たとえば、すべてを選択しようとすると、次のエラーが発生します。

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

2 に答える 2

1

違いを確認してください

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

create table #t
(
    id-Column int
)
于 2012-05-17T18:21:46.020 に答える
1

@Column(name = "\" system-test-id \ "")は、引用符で囲まれた識別子を処理するためのJPA定義の方法です。

Hibernateには、batck-ticksを使用したもう少しわかりやすい構文があります。@ Column(name = " system-test-id")

バックティック( `)または埋め込まれた二重引用符は、識別子を引用符で囲む必要があることを示し、方言固有の識別子の引用符に置き換えられます。

于 2012-05-17T19:58:34.703 に答える