java允许值为空_java – 有没有办法防止空值被持久化,同时允许其他人通过?

我有一个现有的JPA(EclipseLink)项目,其中所需的行为是,如果在实体的字段中给出空值,则不应该保留该空值.

用例是我们可以从外部源获得对这些实体的多个部分更新.这些来源可能会给我们一个空值,这并不意味着“使这个领域无效”,这意味着“我没有这个价值”.

是否有注释,模式或其他工具可用于在setter中自动执行null检查或告诉JPA不保持空值????

我可以在每个实体中查看每个setter并添加if(val!= null){//设置值}但这很乏味且重复.

例如,我们有:

@Entity

@Table(name = "my_table")

public class MyObject {

@Column

private String myColumn;

public String getMyColumn() {

return this.myColumn;

}

public void setMyColumn(String val) {

this.myColumn = val;

}

}

我想有一些自动帮助的东西:

@Entity

@Table(name = "my_table")

public class MyObject {

@Column

@DontPersistIfNull

private String myColumn;

public String getMyColumn() {

return this.myColumn;

}

public void setMyColumn(String val) {

this.myColumn = val;

}

}

或这个:

@Entity

@Table(name = "my_table")

public class MyObject {

@Column

private String myColumn;

public String getMyColumn() {

return this.myColumn;

}

public void setMyColumn(String val) {

//AUTOGENERATED NULL CHECK

if(val != null) {

this.myColumn = val;

}

}

}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值