【发布时间】:2018-02-14 22:38:02
【问题描述】:
我想在 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 typesnull 元素被认为是有效的
但是@Digits(integer=2, fraction=0)对生成的列没有影响。
我正在寻找一个通用的解决方案,它也可以在 MySQL 上运行。
【问题讨论】:
-
Digit 注释仅用于验证数据,并要求验证器实现在值与定义的值不匹配时抛出异常。它与 JPA 无关,与数据库中的 DDL 生成无关。如果您在数据库中查找特定类型,则必须使用 columnDefinition 自己定义它。如果它不能在不同的数据库平台上运行,你就会被卡住——你必须在 orm.xml 中覆盖它,并为你的数据库提供细节。