
[英]Is there an elegant way to specify entity's fields to ignore by Spring Data Elasticsearch's ObjectMapper while left them being serialized for REST?
[英]Is there a way in SpringBoot to add default data for fields while the entity class is being created?
提示:本站为国内最大中英文翻译问答网站,提供中英文对照查看,鼠标放在中文字句上可显示英文原文。
这是我的实体 class,这代表根据发生在另一个实体上的交易更新 accountBalance 的账户,
@Entity
@Data
@AllArgsConstructor
@NoArgsConstructor
public class MainAccounts {
@Id
private Long id ;
@DateTimeFormat(iso = DateTimeFormat.ISO.DATE)
private LocalDate date
private Double AccountBalance;
public Double getAccountBalance() {
return AccountBalance;
}
public void setAccountBalance(Double accountBalance) {
AccountBalance = accountBalance;
}
public Long getId() {
return id;
}
public void setId(Long id) {
this.id = id;
}
public LocalDate getDate() {
return date;
}
public void setDate(LocalDate date) {
this.date = date;
}
创建实体后,我可以像这样将默认值添加到我的帐户表中吗?
ID | 日期 | 账户余额 |
---|---|---|
1个 | null | 0.00 |
只是我不希望表有 null 个值,当我调用 getId() 或 getaccountBalance() 方法时
您已经在使用@Data
,这意味着您不需要手动编写 getter 和 setter,因为 Lombok 将在后台生成它,只需使用 setDate(您的日期在这里),并对所有 getter 和 setter 应用相同的概念方法,
注意:如果日期代表创建日期,您可以使用此注释设置上述日期变量@CreationTimestamp
实际上你可以通过 @Column 注释来设置它。
https://www.baeldung.com/jpa-default-column-values
To create a default value directly in the SQL table definition, we can use the @Column annotation and set its columnDefinition parameter:
@Column(columnDefinition = "varchar(255) default 'John Snow'")
private String name;
@Column(columnDefinition = "integer default 25")
private Integer age;
您可以使用来自@PrePersist
的@PrePersist。
public class MainAccounts {
@PrePersist
public void prePersist() {
this.accountBalance = 0.0;
// any value setting before saving
}
}
您可能还想访问在更新托管实体之前调用的@PreUpdate
。
您可以尝试直接设置到实体属性
private String name = "default";
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.