0

我有一张包含库存的表格。它是遗留数据库,库存保存在列中。数据库对列有一个约束,说明它们不能是负值。但是我只在事务提交后才得到约束违规。

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;
} 
4

3 回答 3

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

}

它应该工作

于 2012-06-25T10:34:06.937 回答
1

从 3.5 版开始,Hibernate 支持标准bean 验证(JSR303)。您可以并且应该使用它们来验证您的实体,因为 API 快速、集成良好,更重要的是标准化

@Min(value = 0)
@Column(name = "STKSOHQTY01", precision = 12)
public BigDecimal getStksohqty01() {
    return this.stksohqty01;
}
于 2012-06-25T10:46:13.800 回答
0

尝试@Check

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

public class YourEntity implements  Serializable {...}
于 2012-06-25T10:33:43.777 回答