Att använda bindestreck i kolumnnamn verkar vara ett känt problem med Hibernate.
I JPA 1.0 är lösningen att undvika kolumnnamnet med backticks:
// this is for primary key
@Id
@GeneratedValue(strategy = GenerationType.TABLE)
@Column(name = "`USER-NO`")
private int userno;
I JPA 2.0 och senare kan du helt enkelt placera citattecken runt kolumnnamnet, t.ex.
@Column(name = "\"USER-NO\"")
Referens:
Skapar fält med reserverat ordnamn med JPA