【问题标题】:Handling field of Integer with specific count of digits in entity处理实体中具有特定位数的整数字段
【发布时间】:2017-05-02 19:20:54
【问题描述】:

我正在为具有整数字段的表生成实体。 在数据库中,该字段设置为允许 4 位数字。

CREATE TABLE REG_DETAIL (
    REG_ID INTEGER (4) DEFAULT J NOT NULL,
    ACTV_CD CHAR    (1) DEFAULT 'N' NOT NULL,
    STATUSCD CHAR    (5) DEFAULT 'N' NOT NULL,
    DATE_CMPLETED DATE    (4) DEFAULT Y,
)

我正在使用 Eclipse 中的数据资源管理器生成实体。

通过数据资源管理器生成不会对整数添加任何约束。

如果在 JPA 2.0/Hibernate 中我想知道什么

  1. 我们可以在整数字段中接受的整数值上添加一个范围。

  2. 或者是否可以控制整数字段允许的位数。

或者,如果它在 JPA 2.1 中有所不同

---更新---

我被指向了 Hibernate 文档。 Hibernate 提供注解、Range、Length、Max、Min 等有助于控制字段值

【问题讨论】:

  • 很难理解想要你想要的没有代码。您是否考虑过验证注释,姐妹/JPA 的补充? docs.jboss.org/hibernate/validator/4.1/reference/en-US/html/…
  • 你做得很好,没有清楚地得到问题。我正在寻找范围注释。我会尽量让问题更清楚
  • 对许多 JPA 提问者的一般要求:请提供有问题的 Java 代码,而不仅仅是 SQL 片段。

标签: java hibernate jpa-2.0


【解决方案1】:

当你使用@Column注解时,你可以给它传递一个length属性来表示数据库中字段的长度。

@Column(name = "column_name", length = 10)

例如,这将创建一个INTEGER(10)

此外,您可以使用 Bean Validation 来指定带有 @Max@Min 注释的最大值和最小值。

您可以看到所有可能的选项here

【讨论】:

  • 感谢您的信息。在我被指向文档后我也意识到了
  • 在纯 JPA 中开发更好,但使用提供程序扩展(Hibernate、Eslipselink 等)当然是可能的,可以带来好处但需要可移植性
猜你喜欢
  • 1970-01-01
  • 2013-05-15
  • 2020-01-29
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2015-05-03
  • 1970-01-01
相关资源
最近更新 更多