2012-06-25 25 views
0

我有一张包含股票的表格。它是传统数据库,股票保存在列中。数据库对列指出它们不能是负值。但是我只在事务提交后才得到约束违规。如何使用hibernate注释验证负值?

15:21:31,154 WARN JDBCExceptionReporter:77 - SQL Error: 2290, SQLState: 23000 
15:21:31,154 ERROR JDBCExceptionReporter:78 - ORA-02290: check constraint (ERPDSS13.STKMAST_CON_QTY13) violated 
ORA-06512: at "ERPDSS13.INLTRAN_UPD_STKMAST", line 25 
ORA-04088: error during execution of trigger 'ERPDSS13.INLTRAN_UPD_STKMAST' 

是否有注释的方式可以指定列不能为负数。以下是列映射?

@Column(name = "STKSOHQTY01", precision = 12) 
public BigDecimal getStksohqty01() { 
    return this.stksohqty01; 
} 
+0

休眠什么版本? – Perception

+0

3.5.4-Final Chan

回答

2
@Check(constraints = "STKSOHQTY01 >= 0") 
public class Coupon implements Serializable { 

} 

尝试它应该工作

+0

哪里会抛出异常? – Chan

0

@Check

@Check(constraints = "STKSOHQTY01t >= 0") 

public class YourEntity implements Serializable {...} 
0

随着3.5版本的Hibernate支持标准bean validation (JSR303)。你可以和应该使用那些来验证您的实体的API快速,良好集成,更重要的是,标准化

@Min(value = 0) 
@Column(name = "STKSOHQTY01", precision = 12) 
public BigDecimal getStksohqty01() { 
    return this.stksohqty01; 
}