检查所有 DTO 成员中的空条件.如果不是,则将值设置为 pojo 类的相同属性



我正在使用 spring boot 来提供 restful Web 服务,我有很多 DTO 和 Model 对象。

执行后置请求时,前端用户正在发送 DTO 类型对象。Dto 具有大多数相似的模型对象成员。我正在检查 DTO 对象中每个成员的空约束,如果没有,则将值设置为 MODEL 对象的类似属性。

我在下面简要定义了我的情况,

class UserDto{
    private String userid;
    private String username;
    private String dept;
    public String getUserid() {
        return userid;
    }
    public void setUserid(String userid) {
        this.userid = userid;
    }
    public String getUsername() {
        return username;
    }
    public void setUsername(String username) {
        this.username = username;
    }
    public String getDept() {
        return dept;
    }
    public void setDept(String dept) {
        this.dept = dept;
    }
}

和波乔

 class User {
  private String userid;
  private String username;
  private String dept;

   //some constructors
   ........
   public String getUserid() {
    return userid;
   }
   public void setUserid(String userid) {
    this.userid = userid;
   }
   public String getUsername() {
    return username;
   }
   public void setUsername(String username) {
    this.username = username;
   }
   public String getDept() {
    return dept;
   }
   public void setDept(String dept) {
    this.dept = dept;
    }
 }

每次都这样检查,现在我只想知道是否有任何一致的方法来做到这一点

if (userDto.getUserid()!= null)
       user.setUserid(userDto.getUserid());
  if (userDto.getUsername()!= null)
       user.setUsername(userDto.getUsername());

我已经看过这个链接 知道类中的所有变量是否为空的最佳方法是什么?.这只告诉如何在对象中找到可为空的成员,但就我而言,我想找到非空成员并复制到对象中的另一个成员。即如果userDto.getUsername()!==null那么user.setUsername(userDto.getUsername()).这就是我所需要的。

这似乎是ModelMapper项目的用例。我没有使用它,但浏览这里的文档:http://modelmapper.org/getting-started/#mapping 似乎 ModelMapper 解决了您完全相同的问题。

如果你想要一个一致的方式,这样做。1. 使用 objectMapper 将 dto 对象转换为字符串。2. 将此字符串映射到您的 pojo。

 ObjectMapper objectMapper = new ObjectMapper();
 objectMapper.setDefaultPropertyInclusion(Include.NON_NULL);
 String userDtoString = objectMapper.writeValueAsString(userDto);
 User user = objectMapper.readValue(userDtoString, User.class);  // your desired user class object without null values

最新更新