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

问题描述 投票:0回答:4

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

@Entity
public class Myclass{
@Column
private BigDecimal value;
}
java spring hibernate jpa
4个回答
3
投票

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

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

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


1
投票

试试这个:

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

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


0
投票

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


0
投票

使用hibernate注释检查Documentation

@ColumnDefault("0")
private BigDecimal value;
© www.soinside.com 2019 - 2024. All rights reserved.