我想在 oracle 中生成一列 (abc NUMBER(2)
)(目前):
@Column(length = 2)
private Integer abc;
但仍然在 Oracle 中,创建的列是 abc NUMBER(10, 0)
。
我尝试了@Digits(integer=2,fraction=0)
,但我认为这不起作用,因为 Java 类型是Integer
。
@Digit 的 Java 文档说:
The annotated element must be a number within accepted range Supported types are:
BigDecimal BigInteger String byte, short, int, long, and their respective wrapper types
null elements are considered valid
但是@Digits(integer=2,fraction=0)
对生成的列没有影响。
我正在寻找一个也可以在 MySQL 上运行的通用解决方案。
最佳答案
您可以尝试一下java-sql数据类型映射获得的精度
@Column
private Short weightedScore;
还可以尝试使用BigDecimal
指定精度
和scale
@Column(precision = 2, scale = 0)
private BigDecimal weightedScore;
恕我直言,BigDecimal precision
与 Oracle NUMBER( precision)
映射得很好。
使用 precision
属性,即
@Column(precision=2)
private Integer abc;
我希望它生成一些 DDL,例如 NUMBER(2,0)
。
关于java - 使用jpa限制数字列的长度,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46075191/