2016-08-30 27 views
0

我在我的表中的字段定義爲:距離Spring的LocalSessionFactoryBean獲取表字段最大值

"SECTION" NUMBER(3,0) 

此字段的HBM映射:

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

在實體類我宣佈它作爲:

private Integer section; 

在我的DAO,在插入數據之前,我想驗證並拋出一個異常,如果我得到的數據對於該欄位來說太大了。

我迄今使用,我從我的應用場景中獲得的LocalSessionFactoryBean:

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

的問題是,聲明爲整數時,每個字段,長度始終爲255

哪有我得到在oracle中定義的列長度? (這裏:數字(3,0))

回答

0

也許,而不是嘗試訪問列定義,只需在您的POJO上使用Hibernate Validator

+0

有了這個解決方案,我需要爲我想驗證的pojo的每個屬性硬編碼一個max @Size。如果我們不能使其動態工作,那將是我們的最後手段。 – gyc

+0

我結束了使用它,因爲它很乾淨和容易。 – gyc