Sử dụng dấu gạch ngang trong tên cột dường như là một vấn đề đã biết với Hibernate.
Trong JPA 1.0, cách giải quyết là loại bỏ tên cột bằng dấu gạch ngược:
// this is for primary key
@Id
@GeneratedValue(strategy = GenerationType.TABLE)
@Column(name = "`USER-NO`")
private int userno;
Trong JPA 2.0 trở lên, bạn có thể chỉ cần đặt dấu ngoặc kép xung quanh tên cột, ví dụ:
@Column(name = "\"USER-NO\"")
Tham khảo:
Tạo trường với tên từ dành riêng với JPA