【发布时间】:2011-01-03 07:38:14
【问题描述】:
我很不确定为什么我的实体类没有创建我所需的表架构
@Entity
@Table(name = "User")
public class User implements Serializable {
private Long id;
private String loginName;
@Id
@GeneratedValue
public Long getId() {
return id;
}
@Column(name = "login_name", unique = true)
public String getLoginName() {
return loginName;
}
//other setters
}
当我使用 Schema 导出时。
new SchemaExport(config).create(true, true);
它会创建此 SQL,但不会向我的 login_name 字段添加任何唯一约束。
drop table User
create table User (id bigint generated by default as identity, login_name varchar(255)primary key (id))
我正在使用 Apache Derby,并且我查看了 Derby 的参考手册,它确实支持列上的唯一约束。我尝试在类上添加一个 uniqueconstraint 注释,但结果是一样的。
有什么想法吗?
【问题讨论】:
-
这就是所有的 SQL?根据我的经验,通常会有一个 ALTER TABLE 语句来添加 UNIQUE 约束...