Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/spring/11.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 如果列值为null,如何为列变量指定默认值_Java_Spring_Spring Boot_Spring Data Jpa - Fatal编程技术网

Java 如果列值为null,如何为列变量指定默认值

Java 如果列值为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

嗨,我想给列变量分配默认值,若该变量的select查询中的值为null

    @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";