我有一个由hibernate映射到具有一些整数字段的MySQL数据库的实体,例如:
@Column(name = "BVE_YEAR", nullable = true, length = 4)
private Integer year;
表格由Hibernate(hibernate.hbm2ddl.auto=create
)
Integer
或int
类型的所有字段都是以10为长度创建的,无论我在@Column
注释中指定了什么。
如何设置列的长度(某些ALTER TABLE
脚本除外)?
提前感谢您的任何帮助和想法
答案 0 :(得分:3)
像chrylis所说,所显示的长度并不重要。如果您需要“较小”类型,可以在mysql中使用TINYINT
。
我建议创建不使用某些hibernate-automatic的生产数据库,而是使用一些SQL脚本。
答案 1 :(得分:1)
我认为您可以对@Column
和precision
属性使用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
更不清楚的更窄的专栏?