具有类型BigDecimal的列的默认值的JPA注释

时间:2017-12-26 06:23:59

标签: java spring hibernate jpa

在我的一个模型中,将列值作为BigDecimal,我需要在jpa级别将默认值设置为0.我会怎么做?

@Entity
public class Myclass{
@Column
private BigDecimal value;
}

5 个答案:

答案 0 :(得分:3)

您可以使用columnDefination属性告诉ORM该字段的默认值。实际上,这是一种拥有此功能的隐含方式。

@Column(name="value", columnDefinition="Decimal(10,2) default '0.00'")
private BigDecimal value = BigDecimal.ZERO;

除此之外,您可以使用BigDecimal.ZERO初始化字段,当您在保留之前从该实体创建new对象时,该字段将占用相同的目的。

答案 1 :(得分:1)

试试这个:

@Entity
public class Myclass{
    @Column
    private BigDecimal value = BigDecimal.ZERO;
}

恕我直言,这段代码比魔术注释更清楚地表明了你的意图。

答案 2 :(得分:0)

更改setter方法并将数据库列中其他明智设置值的默认值设置为默认值。 public void setvalue(BigDecimal value){if(value == null){this.value = 0;}}

答案 3 :(得分:0)

使用hibernate注释检查Documentation

@ColumnDefault("0")
private BigDecimal value;

答案 4 :(得分:0)

我遇到了这段代码,发现添加 new 关键字,否则你会遇到 NullPointerException

@Entity
public class Myclass{
    @Column
    private BigDecimal value = new BigDecimal("0"); //
    private BigDecimal value = new BigDecimal(BigDecimal.ZERO);
}