Hibernate独特的字段创建

时间:2013-11-27 12:09:25

标签: java mysql hibernate

我正在尝试在我的一个应用程序域类中添加以下列:

@Column(name="USER_NAME",length=20,nullable=false,unique=true)
private String userName;

我使此字段唯一的原因是我需要确保每个应用程序用户的用户名都是唯一的。

但是每当我尝试加载应用程序时,我都会收到以下错误:

WARN : org.hibernate.util.JDBCExceptionReporter - SQL Error: 1054, SQLState: 42S22
ERROR: org.hibernate.util.JDBCExceptionReporter - Unknown column 'employee0_.USER_NAME' in 'field list'
Nov 27, 2013 12:14:11 PM org.apache.catalina.core.StandardWrapperValve invoke

如果我使unique = false,一切正常。所以我想知道为什么我设置unique = true时会出现此错误?以及我如何确保用户名字段是唯一的?

感谢您的时间

1 个答案:

答案 0 :(得分:0)

如果你说将unique设置为false它可以正常工作,当它设置为true时它会失败,就像在sql表上的列上创建一个唯一索引,其中表已经在该列中没有唯一值,其中如果创建该唯一索引将失败。