我想在oracle中生成一个列(abc NUMBER(2)
)(目前):
@Column(length = 2)
private Integer abc;
但仍在Oracle中,创建的列为abc NUMBER(10, 0)
。
我试过 @Digits(integer=2, fraction=0)
但我认为这不会起作用,因为Java类型是Integer
。
@Digit的Java文档说:
带注释的元素必须是可接受范围内的数字 类型是:
BigDecimal BigInteger String byte, short, int, long, and their respective wrapper types
null元素被认为是有效的
但@Digits(integer=2, fraction=0)
对生成的列没有影响。
我正在寻找一种通用的解决方案,也可以在MySQL上运行。
答案 0 :(得分:2)
您可以尝试 java-sql 数据类型映射
获得的精度@Column
private Short weightedScore;
还尝试BigDecimal
指定precision
和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)
。