Java 如果列值为null,如何为列变量指定默认值
嗨,我想给列变量分配默认值,若该变量的select查询中的值为nullJava 如果列值为null,如何为列变量指定默认值,java,spring,spring-boot,spring-data-jpa,Java,Spring,Spring Boot,Spring Data Jpa,嗨,我想给列变量分配默认值,若该变量的select查询中的值为null @Entity @Table(name = "CDP_ALERTS") public class Country { @Column(name = "alert_reported_time") private String alertReportedTime; @Column(name = "unique_id") private String uniqueT
@Entity
@Table(name = "CDP_ALERTS")
public class Country {
@Column(name = "alert_reported_time")
private String alertReportedTime;
@Column(name = "unique_id")
private String uniqueTrxId;
@Column(name = "status_data")
private String status;
public String getAlertReportedTime() {
return alertReportedTime;
}
public void setAlertReportedTime(String alertReportedTime) {
this.alertReportedTime = alertReportedTime;
}
public String getUniqueTrxId() {
return uniqueTrxId;
}
public void setUniqueTrxId(String uniqueTrxId) {
this.uniqueTrxId = uniqueTrxId;
}
public String getStatus() {
return status;
}
public void setStatus(String status) {
this.status = status;
}
}
在这里,status_数据列值有时会显示为null。
下面是选择查询
@Query( "SELECT a FROM Country a WHERE to_char(alert_reported_time,'DD-MM-YY')=to_char(current_date,'DD-MM-YY') order by alert_reported_time desc")
List<Country> findCountryByDate();
您需要设置nativeQuery=true,并将select查询中的每一列与一些sql方法一起使用,如果该列的值为null,这些sql方法将返回预期值。像在H2中一样,您可以使用IFNULL(列,expectedvalue),在oracle中,您可以使用nvl(列,expectedvalue) 例如: String query=“从CDP_警报中选择alertReportedTime、uniqueTrxId、IFNULL(状态“defaultvalue”)作为状态” @查询(value=Query,nativeQuery=true)
列表
findCountryByDate() 您可以更改属性的getter方法
public String getStatus(){
if(status != null) return status;
return "Whatever you want";
}
另外,如果您想在db中保留默认值。您可以在属性中设置默认值
@Column
private String status = "My default value";
为什么不给数据库列添加一个默认值呢?您可以在getter中添加一个null检查,如果它是null,则返回所需的值。有没有办法用列注释处理它?@srp@column(name=“Price”,columnDefinition=“Decimal(10,2)default“100.00”)适用于insert语句,而不适用于select语句。
@Column
private String status = "My default value";