class User {
private String firstName;
private String secondName;
private int age;
....
get/set methods
}
class UserHolder {
private User user;
....
get/set methods
}
@Mapper(componentModel = "spring")
public interface UserHolderMapper {
@Mapping(source = "user.firstName", target = "firstName")
@Mapping(source = "user.secondName", target = "secondName")
@Mapping(source = "user.age", target = "age")
User toUser(UserHolder source);
}
但是它包含了很多样板代码(在@Mapping注释中),我怎么能对mapper说我想要将source.user映射到这个目标而不指定target的字段呢?
这目前是不可能的。已经有一个特性请求#1406,它与您所需要的非常相似。
在任何情况下,作为解决办法,映射器可以如下所示:
@Mapper(componentModel = "spring")
public interface UserHolderMapper {
default User toUser(UserHolder source) {
return source == null ? null : toUser(source.getUser());
}
User toUser(UserDto source);
}
我不知道userholder
中的对象是什么。userdto
只是一个假设,它可以是任何对象。
我对MapStruct是新手。我有一个场景,在我的目标对象中,我有一个带有键值对 的java映射,我必须使用源对象内部的对象属性/数据成员值来填充这个映射。 我的代码类似于bellow(虚拟代码): 我如何像Bellow一样手动实现相同的事情: 任何帮助,任何建议或任何变通方法都是感激的。提前谢了。
考虑下面的javascript代码 有人能解释对象如何在将设置为null之后访问的“foo”属性吗?用于访问属性的内部链接是什么? 我试图通过搜索寻找可能的解释,但找不到JavaScript这种特殊行为的任何解释。
我想映射嵌套的java对象。改为。 期望:当且仅当不为null,则在下创建对象。否则,不要创建任何目标对象。 问题:我在映射器中使用了。但是mapstruct正在检查是否为null,然后创建。在中,为空。我希望在(leaf/last level object)之前进行空检查,然后创建目标对象。 请告诉我该如何做到这一点 下面是我正在使用的映射。 生成的代码位于https://github.com/
问题内容: 用Javascript将是: 但是Python中相同的语法会创建一个字典,那不是我想要的 问题答案: 有两种功能用途。
问题内容: 我是Hibernate和Criteria Query的新手。所以我在HQL中实现了查询: 如何使用hibernate条件对象实现它? 问题答案: 您的示例只是本机SQL,而不是HQL。无论如何,您可以使用Criteria API中的以下方法来构造所需的Criteria对象: 使用setProjection(Projection projection)定义select子句 使用creat
问题内容: 就我的理解而言,finalize()和GC是两个不同的方面。GC使用finalize()方法释放对象内存。我们无法声明何时发生GC(即使我们显式调用System.gc())。但是我们可以在对象上显式调用finalize()。 同样,按照docs,对于任何给定对象,Java虚拟机都不会多次调用finalize方法。 因此,当我们先调用finalize()且GC在以后的时间点发生时,会发生