在我的一个模型中,将列值作为BigDecimal,我需要在jpa级别将默认值设置为0.我会怎么做?
@Entity
public class Myclass{
@Column
private BigDecimal value;
}
您可以使用columnDefination
属性告诉ORM该字段的默认值。实际上,这是一种拥有此功能的隐含方式。
@Column(name="value", columnDefinition="Decimal(10,2) default '0.00'")
private BigDecimal value = BigDecimal.ZERO;
除此之外,您可以使用BigDecimal.ZERO
初始化该字段,当您在持久化之前从该实体创建new
对象时,该字段将占用相同的目的。
试试这个:
@Entity
public class Myclass{
@Column
private BigDecimal value = BigDecimal.ZERO;
}
恕我直言这段代码比魔术注释更清楚地表明了你的意图。
更改setter方法并将数据库列中的默认值设置为默认值。 public void setvalue(BigDecimal value){if(value == null){this.value = 0;}}
使用hibernate注释检查Documentation
@ColumnDefault("0")
private BigDecimal value;