Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/341.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中,将非空字段和非空字段从一个对象复制到另一个相同类型的对象(对象是相同类型的)_Java_Hibernate_Struts - Fatal编程技术网

在java中,将非空字段和非空字段从一个对象复制到另一个相同类型的对象(对象是相同类型的)

在java中,将非空字段和非空字段从一个对象复制到另一个相同类型的对象(对象是相同类型的),java,hibernate,struts,Java,Hibernate,Struts,我在项目中使用hibernate、struts和extjs 我有一个包含以下字段的客户对象: 卡斯蒂德, 客户名称, 住址 电话 在UI端的项目中,我得到了一个名为custName的对象客户 所以我需要更新上面的objectcustName是唯一的。我只有一个具有相同客户名称的对象。因此,我将使用数据库中的customername对象获取该对象 现在我必须用更新的客户名称保存对象 若我按如下方式保存,那个么我从UI中得到了Customer对象,即cust Customer cust1=getCu

我在项目中使用hibernate、struts和extjs

我有一个包含以下字段的客户对象:

卡斯蒂德, 客户名称, 住址 电话

在UI端的项目中,我得到了一个名为custName的对象客户

所以我需要更新上面的objectcustName是唯一的。我只有一个具有相同客户名称的对象。因此,我将使用数据库中的customername对象获取该对象

现在我必须用更新的客户名称保存对象

若我按如下方式保存,那个么我从UI中得到了Customer对象,即cust

Customer cust1=getCustomerByNamecust.getCustName

cust.setCustIdcust1.getCustId;savecust

如果我这样做,我会丢失客户地址和电话号码

那么,如何将一个非空或非空字段值的对象复制到同一类型的另一个对象

谁能帮忙吗。我只是呆在这里。它阻止了我去拯救


提前谢谢

您混淆了对cust和cust1的引用


除非cust已经有地址,否则在cust上设置custId也不会从cust1复制地址。

两个选项。使用反射查找所有字段并复制不为空的字段。或者更好的选择,编写一个更新方法,显式检查每个字段,并根据需要更新数据库实例的字段。

一个奇怪的数据模型,其中CustomerName是唯一的,CustomerId将被更新。@radimpe使用客户Id作为内部用途,但我的客户名在我的情况下是唯一的。这不是我刚才给出的唯一性的问题数据模型的示例不是rea。但如何复制呢?每次我都要检查客户名称是否为空或地址是否为空。在这里,数据模型的字段较少。就我而言,它有很多。我不能检查每件事,所以我只想复制非空字段和非空字段。除非我不复制旧值,否则旧值将丢失。@Chinni-但除非您检查,否则您如何知道值是否为空。。。有时候,你只需要吸取教训,写出那些if语句。在这种情况下,反思是需要权衡的。反射具有运行时效率成本,但可以用最少的代码设置任意数量的字段。请编写一个脚本,为您生成代码,并使用if而不是反射。。。