【问题标题】:Get table field max value from Spring LocalSessionFactoryBean从 Spring LocalSessionFactoryBean 获取表字段最大值
【发布时间】:2016-08-30 10:49:00
【问题描述】:

我的表中有一个字段定义为:

"SECTION" NUMBER(3,0)

该字段的hbm映射为:

<property name="section" type="integer">
    <column name="SECTION" />
</property>

在实体类中我声明为:

private Integer section;

在我的 DAO 中,在插入数据之前,如果我获得的数据对于 section 字段来说太大,我想验证并抛出异常。

到目前为止,我使用从我的应用程序上下文中获得的 LocalSessionFactoryBean:

int length = ((Column) localSessionFactoryBean.
           getConfiguration().
           getClassMapping(MyEntity.class.getName()).
           getProperty("section").
           getColumnIterator().next()).getLength();

问题在于,对于声明为整数的每个字段,长度始终为 255。

如何获取 oracle 中定义的列长度? (这里:数字(3,0))

【问题讨论】:

    标签: java spring oracle hibernate sessionfactory


    【解决方案1】:

    也许,与其尝试访问列定义,不如在您的 POJO 上使用 Hibernate Validator

    【讨论】:

    • 使用此解决方案,我需要为要验证的 pojo 的每个属性硬编码一个最大 @Size。如果我们不能让它动态工作,那将是我们最后的手段。
    • 我最终使用了它,因为它既干净又简单。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2020-04-16
    • 1970-01-01
    • 2012-03-24
    • 2023-02-17
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多