El uso de guiones en los nombres de las columnas parece ser un problema conocido con Hibernate.
En JPA 1.0, la solución consiste en escapar del nombre de la columna con acentos graves:
// this is for primary key
@Id
@GeneratedValue(strategy = GenerationType.TABLE)
@Column(name = "`USER-NO`")
private int userno;
En JPA 2.0 y versiones posteriores, simplemente puede colocar comillas alrededor del nombre de la columna, por ejemplo,
@Column(name = "\"USER-NO\"")
Referencia:
Creando campo con nombre de palabra reservado con JPA