繁体   English   中英

如何只修改spring数据jpa中的实体的一部分?

[英]How do I modify only part of an entity in spring data jpa?

如何只修改Spring数据JPA中的实体的一部分?

这是我的代码。

public void modifyDrawing(Long no, String name, Double lat, Double lon, String physicalName, String desc) {
   Drawing drawing = drawingRepository.findById(no)
       .orElseThrow(NoSuchElementException::new);

   drawing.setName(name);
   drawing.setLat(lat);
   drawing.setLon(lon);
   drawing.setPhysicalName(physicalName);
   drawing.setDesc(desc);
   drawingRepository.save(drawing);
}

此时,如果latlon是null,我想保持数值不变。 我想知道如何仅使用非空参数值更新实体值。

在调用他们的设置器之前,您应该添加一个if检查以确保纬度/经度不是null

public void modifyDrawing(Long no, String name, Double lat, Double lon, String physicalName, String desc) {
    Drawing drawing = drawingRepository.findById(no)
        .orElseThrow(NoSuchElementException::new);

    drawing.setName(name);
    if (lat != null) {
        drawing.setLat(lat);
    }
    if (lon != null) {
        drawing.setLon(lon);
    }
    drawing.setPhysicalName(physicalName);
    drawing.setDesc(desc);
    drawingRepository.save(drawing);
}

暂无
暂无

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

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