仅当existing字段不为空时,如何才能将值设置到incoming对象中?在表单提交时,我检查传入的字段是否不为空,然后在数据库保存中更新现有对象。我有太多的字段和每个字段的代码片段。有没有一种很好的方法来只在existing对象上设置更新后的字段?
protected void updateFoo(Foo input, Foo existing) {
if (input.getEducation() != null) {
existing.setEducation(input.getEducation());
}
...
}发布于 2021-05-21 21:18:34
您可以在一个映射中组合所有字段。当出现任何新值时,更新子映射,并将该子映射传输到接收器。
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行)中创建一次映射,并将此映射用作接收方的参考卡。
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更快,尤其是在大型数据库中
https://stackoverflow.com/questions/67637279
复制相似问题