Usar hífens em nomes de colunas parece ser um problema conhecido com o Hibernate.
No JPA 1.0, a solução alternativa é escapar do nome da coluna com acentos graves:
// this is for primary key
@Id
@GeneratedValue(strategy = GenerationType.TABLE)
@Column(name = "`USER-NO`")
private int userno;
No JPA 2.0 e posterior, você pode simplesmente colocar aspas ao redor do nome da coluna, por exemplo
@Column(name = "\"USER-NO\"")
Referência:
Criando campo com nome de palavra reservada com JPA