我在我的项目中使用Hibernate。我已经创建了一个数据库模式。
我在网上教程中看到
@Column(name = "STOCK_ID", unique = true, nullable = false)
public Integer getStockId() {
return this.stockId;
}
正在使用诸如unique nullable等的列属性。我的问题是我需要做的 如果我已经预先准备好了一个db模式,并且在创建表时给出了所有非null和所有检查的列,请指定这些属性吗?
答案 0 :(得分:1)
不,不,只需要填写Hibernate注释中的必需参数。但可选参数通常具有默认值。您的数据库必须与默认值兼容,否则您必须填写您使用的值。
答案 1 :(得分:1)
unique
仅在从JPA注释生成数据库模式时使用。 nullable = false
允许JPA更高效:如果在将实体写入数据库时该值为null,则它甚至不必执行插入/更新查询并且可以立即抛出异常。
即使这不是绝对必要的,我也喜欢在映射中使用这些信息进行文档编制。能够在不查看数据库模式的情况下立即从代码中了解属性是否可为空是有用的。