【发布时间】:2012-02-23 10:03:36
【问题描述】:
我正在使用hbm2ddl 通过在配置中包含这一行来自动创建架构:
<prop key="hibernate.hbm2ddl.auto">create</prop>
我有一个实体 bean 定义为:
@Entity
@Table(name = "user")
public class User {
@Column(name = "firstname")
private String firstName;
@Column(name = "lastname")
private String lastName;
private String fullName;
}
有 3 个属性,我喜欢将前两个保存在数据库表中,并喜欢计算第三个。当我使用 create 选项运行 hbm2ddl 时,它会创建所有 3 列,尽管我在第三列上没有 @Column 注释。
如何防止 Hibernate 将最后一个属性创建为列?
【问题讨论】:
-
Hibernate 将始终为属性创建列,无论它们是否被注释为@Column。正如您所见,阻止这种情况的唯一方法是明确告诉 Hibernate 您要从映射中排除某个属性。