Pertanyaan Hibernate menyimpan model Pengguna ke Postgres


Saya menggunakan Postgres melalui Hibernate (anotasi), tetapi tampaknya akan gagal dalam menangani objek Pengguna:

12:09:16,442 ERROR [SchemaExport] Unsuccessful: create table User (id  bigserial not null, password varchar(255), username varchar(255), primary key (id))
12:09:16,442 ERROR [SchemaExport] ERROR: syntax error at or near "User"

Jika saya menjalankan SQL secara manual saya harus meletakkan tanda kutip di atas nama tabel sebagai pengguna tampaknya menjadi kata kunci postgres, tapi bagaimana saya bisa meyakinkan hibernate untuk melakukan ini sendiri?

Terima kasih sebelumnya.


14
2017-08-31 11:14


asal


Jawaban:


Anda harus keluar dari nama tabel saat menggunakan kata kunci yang dipesan. Di JPA 1.0, tidak ada cara standar dan solusi khusus Hibernate adalah menggunakan backticks:

@Entity
@Table(name="`User`")
public class User {
    ...
}

Di JPA 2.0, sintaks yang standar terlihat seperti ini:

@Entity
@Table(name="\"User\"")
public class User {
    ...
}

Referensi


34
2017-08-31 18:11



Pengguna adalah kata kunci, cari nama yang lebih baik atau gunakan kutipan: "Pengguna". (Gagasan buruk imho, tetapi itu berhasil jika Anda melakukannya dimana mana)


3
2017-08-31 11:17