列名にハイフンを使用することは、Hibernateの既知の問題のようです。
JPA 1.0での回避策は、列名をバッククォートでエスケープすることです。
// this is for primary key
@Id
@GeneratedValue(strategy = GenerationType.TABLE)
@Column(name = "`USER-NO`")
private int userno;
JPA 2.0以降では、列名を引用符で囲むことができます。例:
@Column(name = "\"USER-NO\"")
参照: