【发布时间】:2012-07-16 11:30:15
【问题描述】:
为什么 hbm2ddl 会忽略 @Column 注释?
这是我的课:-
import javax.persistence.Column;
import javax.persistence.Entity;
import javax.persistence.GeneratedValue;
import javax.persistence.Id;
import javax.persistence.Table;
@Entity
@Table(name = "BASETEMPLATE")
public class BaseTemplate implements IBaseTemplate
{
private Integer id;
@Column(name="TEMPLATENAME")
private String templateName;
@Column(name="BASETEMPLATEID")
private Integer baseTemplateId;
@Id
@GeneratedValue
@Column(name = "TEMPLATEID")
@Override
/** {@inheritDoc} */
public Integer getId() { return id; }
...
}
hbm2dll 生成这个(sqlserver)表
dbo.BASETEMPLATE
(
TEMPLATEID int
templateName varchar(255)
baseTemplateId int
)
方言是 org.hibernate.dialect.SQLServerDialect 奇怪的是,主键总是正确创建的?
【问题讨论】:
-
你希望生成什么样的表结构?我看到 3 个
@Column注释(带有名称)和 3 个具有相同名称的 DB 表列。看起来它对我有用。 -
我希望大小写匹配(我正在移植到区分大小写的数据库),但是即使列名完全不同,这也不起作用。
-
对不起,我什至没有注意到大小写差异,哎呀,我的错。