我正在使用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个属性,我喜欢前两个要保存在数据库表中,喜欢计算第三个属性。当我使用[{1}}选项运行hbm2ddl
时,它会创建所有3列,但我不会在第三列上添加create
注释。
如何防止Hibernate将最后一个属性创建为列?
答案 0 :(得分:3)
@Transient
肯定会阻止它。
答案 1 :(得分:2)
@Column
注释并不意味着该字段将被保留。它只是添加更多信息,例如用于架构生成器。
如果您不希望持久化字段(并且仍然使用实体的字段访问权限),则应该将其标注为@Transient
,如NimChimpsky指出的那样,或者使用Java transient
关键字。