Hibernate:如何设置整数字段的长度

时间:2013-08-04 21:09:37

标签: java mysql hibernate

我有一个由hibernate映射到具有一些整数字段的MySQL数据库的实体,例如:

@Column(name = "BVE_YEAR", nullable = true, length = 4)
private Integer year;

表格由Hibernate(hibernate.hbm2ddl.auto=create

自动创建

Integerint类型的所有字段都是以10为长度创建的,无论我在@Column注释中指定了什么。

如何设置列的长度(某些ALTER TABLE脚本除外)?

提前感谢您的任何帮助和想法

3 个答案:

答案 0 :(得分:3)

像chrylis所说,所显示的长度并不重要。如果您需要“较小”类型,可以在mysql中使用TINYINT

我建议创建不使用某些hibernate-automatic的生产数据库,而是使用一些SQL脚本。

答案 1 :(得分:1)

我认为您可以对@Columnprecision属性使用scale注释。

length属性仅影响字符串属性。

您可以在第2.2.2.3章中找到更多信息,即here。声明列属性。

如果它不起作用,您可以尝试使用hibernate验证器的@Min@Max pr @Range注释。

答案 2 :(得分:1)

(Optional) The column length. (Applies only if a string-valued column is used.)

如果您确实要显式设置列宽,则必须使用columnDefinition并手动指定整个内容。是否有一个特殊的原因,你想要一个@Min更不清楚的更窄的专栏?