Java Hibernate唯一字段创建

Java Hibernate唯一字段创建,java,mysql,hibernate,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:

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

@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时会出现这个错误?如何确保用户名字段是唯一的


感谢您花时间

如果您说将unique设置为false会起作用,而将其设置为true则会失败,这就像在sql表的某列上创建一个唯一索引,而该列中该表已经没有唯一的值,在这种情况下,创建该唯一索引将失败。

是否验证有同名列?@mabi如果unique=true,则不会在应用程序加载时创建该列。如果unique=false,则自动创建列时不会出现问题。该问题并不存在于列中,因为即使您手动创建了列,您仍然会遇到错误尝试在getter方法中添加
@column(name=“USER\u name”,length=20,nullable=false,unique=true)
您确定您的hbm2ddl属性处于创建状态吗?:创造