- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我想对我的一个实体进行部分更新,但如果一个属性为 null,则要更新的实体也会将该值设置为 null。我希望如果源中的某个属性为 null,则保留源中的属性。
我已经尝试过,但没有运气:
@Bean
public ModelMapper modelMapper() {
ModelMapper modelMapper = new ModelMapper();
modelMapper.getConfiguration().setPropertyCondition(Conditions.isNotNull());
modelMapper.createTypeMap(String.class, Date.class);
modelMapper.addConverter(new StringToDate());
modelMapper.addConverter(new DateToString());
return modelMapper;
}
然后我像这样更新我的对象:
@Override
public void editUser(final User user) {
UserDocument userDocument = this.usersRepository.findByIdAndActivo(user.getId(), true)
.orElseThrow(UserNotFoundException::new);
userDocument = this.modelMapper.map(user, UserDocument.class);
this.usersRepository.save(userDocument);
}
user
对象有 1 个属性设置为 null,而对象 userDocument
为其设置了值,然后当我将其保存到数据库中时,该值消失了(因为它已转变为 null)。
可能出了什么问题?
谢谢。
最佳答案
好吧,配置并没有达到我想象的目的。
我通过将更新的对象与旧的对象合并解决了这个问题,如下所示:
@Override
public void editUser(final User user) {
UserDocument userDocument = this.usersRepository.findByIdAndActivo(user.getId(), true)
.orElseThrow(UserNotFoundException::new);
this.modelMapper.map(user, userDocument);
this.usersRepository.save(userDocument);
}
关于java - ModelMapper 不忽略空值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56359427/
我想映射到一个只有一个带有 3 个参数的构造函数的源目标。我收到以下错误: Failed to instantiate instance of destination com.novasol.book
我有 2 个对象: @Setter @Getter public class Agent { public int userID; public String name; pu
我正在尝试使用 modelmapper 将我的类映射到传入请求。 看起来 Date 无法在 modelmapper 中自动转换。 Converter org.modelmapper.internal.
我想在UserDTO之间映射和 User ,但不包括一个字段,比如 city .我该怎么做,因为我认为这种方法可行,但它不起作用: ModelMapper modelMapper = new Mode
我有一个结构如下的源对象: class SourceA { int www; SourceB sourceB; } class SourceB { int xxx; int yyy;
当我尝试通过枚举将源中的字符串映射到目标中的整数时。 ModelMapper 失败。 来源 public class Request { private String classificati
我正在尝试使用 ModelMapper 将一种对象类型映射到另一种对象类型。我在 PropertyMap 实现中定义了以下映射: map().getExtended().setIncludeMaskT
我想对我的一个实体进行部分更新,但如果一个属性为 null,则要更新的实体也会将该值设置为 null。我希望如果源中的某个属性为 null,则保留源中的属性。 我已经尝试过,但没有运气: @B
我有以下 DTO 和 VO: 话音 public class ProjectVO { private Date fechaInicio; private Date fechaFin;
我正在尝试将字符串转换为日期,但转换器似乎没有被触发,并且我收到了 MappingException。这是我的代码: @Bean public ModelMapper modelMap
假设我有类 MySource: public class MySource { public String fieldA; public String fieldB; publ
当我尝试通过枚举将源中的字符串映射到目标中的整数时。 ModelMapper 失败。 来源 public class Request { private String classificati
我正在尝试使用 ModelMapper 将源映射到目标。 在我的具体情况下,在源类中有一个属性(评论列表),我必须在其中按评级求和并将该值设置为目标类。 所以我尝试使用转换器,但它不起作用。
我在映射稍微复杂一点的对象时遇到问题,实际上它只映射了对象的一半。 对象是: { "firstName": "John", "lastName": "John", "description": "It
我正在尝试使用 ModelMapper 映射以下 json,如此处所述 http://modelmapper.org/user-manual/gson-integration/但我收到 NullPoi
class A { class ADto { int id; -> int id; List b; List
我有以下实体类: class Provider{ private String providerId; private String identificationNumber;
我的结构类似于下面的: public class FirstObject { private List myListOne; ...only getter method...
我在使用 ModelMapper 框架时遇到了麻烦。请解释为什么我看到以下行为。 我在 build.gradle 中有以下依赖项 compile group: 'org.modelmapper', n
我有:返回 Date 对象的 Object1.getDataObject2.setData 获取一个字符串并填充他的字段。 我将以 yyyy-MM-dd 格式将数据对象从 src 映射到 String
我是一名优秀的程序员,十分优秀!