【发布时间】:2013-11-27 12:09:25
【问题描述】:
我正在尝试在我的一个应用程序域类中添加以下列:
@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 时会出现这个错误?以及如何确保用户名字段是唯一的?
感谢您的宝贵时间
【问题讨论】:
-
您是否验证过有该名称的列?
-
@mabi with unique=true,该列不是在应用程序加载时创建的。使用 unique = false 时,会自动创建该列,没有问题。问题不在于列存在,因为即使您手动创建列,您仍然会收到错误
-
尝试在getter方法中添加
@Column(name="USER_NAME",length=20,nullable=false,unique=true) -
您确定您的 hbm2ddl 属性正在创建吗? :
创建