在开发环境中使用hbm2ddl的问题

时间:2012-01-31 17:04:50

标签: hibernate hbm2ddl

我正在使用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将最后一个属性创建为列?

2 个答案:

答案 0 :(得分:3)

@Transient肯定会阻止它。

答案 1 :(得分:2)

@Column注释并不意味着该字段将被保留。它只是添加更多信息,例如用于架构生成器。

如果您不希望持久化字段(并且仍然使用实体的字段访问权限),则应该将其标注为@Transient,如NimChimpsky指出的那样,或者使用Java transient关键字。