Używanie myślników w nazwach kolumn wydaje się być znanym problemem związanym z Hibernate.
W JPA 1.0 obejściem tego problemu jest uniknięcie nazwy kolumny znakami wstecznymi:
// this is for primary key
@Id
@GeneratedValue(strategy = GenerationType.TABLE)
@Column(name = "`USER-NO`")
private int userno;
W JPA 2.0 i nowszych możesz po prostu umieścić cudzysłów wokół nazwy kolumny, np.
@Column(name = "\"USER-NO\"")
Odniesienie:
Tworzenie pola z zastrzeżoną nazwą słowa z JPA