Brug af bindestreger i kolonnenavne ser ud til at være et kendt problem med Hibernate.
I JPA 1.0 er løsningen at undslippe kolonnenavnet med backticks:
// this is for primary key
@Id
@GeneratedValue(strategy = GenerationType.TABLE)
@Column(name = "`USER-NO`")
private int userno;
I JPA 2.0 og nyere kan du blot placere anførselstegn omkring kolonnenavnet, f.eks.
@Column(name = "\"USER-NO\"")
Reference:
Opretter felt med reserveret ordnavn med JPA