如何只修改 spring 数据 jpa 中实体的一部分?
How do I modify only part of an entity in spring data jpa?
如何在 Spring Data 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);
}
此时,如果lat
和lon
为null,我想保留这些值而不改变它们。我想知道如何仅使用非空参数值更新实体值。
您应该添加一个 if
检查以确保 latitude/longitude 在调用它们的设置器之前不是 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);
}
如何在 Spring Data 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);
}
此时,如果lat
和lon
为null,我想保留这些值而不改变它们。我想知道如何仅使用非空参数值更新实体值。
您应该添加一个 if
检查以确保 latitude/longitude 在调用它们的设置器之前不是 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);
}