繁体   English   中英

仅当输入 object 上的相应字段不是 null 时,如何在现有 object 上设置字段

[英]How to set fields on an existing object only if the corresponding fields on an input object are not null

仅当incoming字段不是 null 时,如何将值设置到existing object 中? 在提交表单时,我检查传入字段是否不是 null,然后再更新数据库保存上的现有 object。 我的字段太多,每个字段的片段太多。 有没有一种优雅的方法来仅在existing object 上设置更新的字段?

protected void updateFoo(Foo input, Foo existing) {
    if (input.getEducation() != null) {
        existing.setEducation(input.getEducation());
    }
    ...
}

您可以组合 map 中的所有字段。 当出现任何新值时,更新子映射并将子映射传输到接收器。

https://www.javatpoint.com/java-map

https://docs.oracle.com/en/java/javase/14/docs/api/java.base/java/util/HashMap.html

https://docs.oracle.com/en/java/javase/14/docs/api/java.base/java/util/SortedMap.html

例子:

your database row

Value: 1  2  3  4  5

您从任何数据库行(可能是第 0 行)中创建一次 map 并使用此 map 作为接收方的参考卡。

myMap

Key:   A  B  C  D  E
Value: 1  2  3  4  5

您的数据库更改为:

your database row

Value: 1  2  7  4  9

您创建一个子地图。

mySubMap

Key:   C  E
Value: 7  9

您将该子地图传输到接收器并更新接收器。

这篇文章中有一些小的逻辑错误,但我希望你能明白。

PS 地图的运行速度比无止境的 if...else 快,尤其是在大型数据库中

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM