使用Hibernate声明表列属性

时间:2013-12-16 07:50:11

标签: java mysql hibernate orm

我在我的项目中使用Hibernate。我已经创建了一个数据库模式。

我在网上教程中看到

@Column(name = "STOCK_ID", unique = true, nullable = false)
    public Integer getStockId() {
        return this.stockId;
    }

正在使用诸如unique nullable等的列属性。我的问题是我需要做的 如果我已经预先准备好了一个db模式,并且在创建表时给出了所有非null和所有检查的列,请指定这些属性吗?

2 个答案:

答案 0 :(得分:1)

不,不,只需要填写Hibernate注释中的必需参数。但可选参数通常具有默认值。您的数据库必须与默认值兼容,否则您必须填写您使用的值。

答案 1 :(得分:1)

unique仅在从JPA注释生成数据库模式时使用。 nullable = false允许JPA更高效:如果在将实体写入数据库时​​该值为null,则它甚至不必执行插入/更新查询并且可以立即抛出异常。

即使这不是绝对必要的,我也喜欢在映射中使用这些信息进行文档编制。能够在不查看数据库模式的情况下立即从代码中了解属性是否可为空是有用的。