Mapstruct使用我自己的无参数方法作为List的工厂(而不是构造函数)
我试着映射一些对象树,应该逐级构建。我有一种硬编码根节点的方法和另一种方法,用于将实体映射到节点。所以我有一个生成根名称列表的方法,和映射的抽象方法。
@Mapper
public abstract class TestMapper {
public List<Name> rootNames() {
List<Name> names = new ArrayList<>();
names.add(Name.build("Homer"));
names.add(Name.build("Marge"));
return names;
}
@Mapping(target = "name", source = "name")
public abstract Name childrenName(FullName simpson);
public abstract List<Name> childredNames(List<FullName> children);
public static class Name {
private String name;
public static Name build(String value) {
Name name = new Name();
name.setName(value);
return name;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
}
public static class FullName {
private String name;
private String lastName;
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public String getLastName() {
return lastName;
}
public void setLastName(String lastName) {
this.lastName = lastName;
}
}
}
所以在生成的代码中,“childrenNames”看起来像@Override public List childrenNames(List children){if(children==null){return null;}
List<Name> list = rootNames();
for ( FullName fullName : children ) {
list.add( simpsonName( fullName ) );
}
return list;
}
如何将我的rootNames方法标记为忽略映射?
顺致敬意,阿列克谢
如票据中所述https://github.com/mapstruct/mapstruct/issues/1725您应该将命名的注释添加到您的rootNames()
方法中。如果没有注释,MapStruct将自动将其作为对象工厂拾取(请参见http://mapstruct.org/documentation/dev/reference/html/#object-工厂)。
一旦一个方法被注释为命名的,它只有在被明确引用时才会被提取。
@org.mapstruct.Named("rootNames")
public List<Name> rootNames() {
List<Name> names = new ArrayList<>();
names.add(Name.build("Homer"));
names.add(Name.build("Marge"));
return names;
}
我有以下内容: 我想忽略在RegimenEntity中设置的regimenDrugs内的所有RegimenDrugEntity对象的id。 此映射(target=“regimenDrugs.id”,ignore=true)不编译。
问题内容: 这个问题本质上是相反的这一个 我有这样的方法: 当我加载它时,Hibernate抱怨我没有称为的属性。但是我不想要一个叫做-我不需要存储数据的属性-这仅仅是逻辑。 hibernate状态: org.hibernate.PropertyNotFoundException:在com.mycomp.myclass类中找不到空置属性的设置器… 我可以在方法中添加注释以使Hibernate忽略它
我想在 中使用 trait 对象。在C中,我可以制作一个基类,从中派生出和。然后我可以创建一个
MongoDB 中的集合是一组文档的组合,类似于关系型数据库(例如 MySQL)中的数据表。集合存在于数据库中,且没有固定的结构,您可以向集合中插入不同格式或类型的数据。 在 MongoDB 中,您可以使用 createCollection() 方法来创建集合,语法格式如下: db.createCollection(name, options) 参数说明如下: name: 要创建的集合名称; op
本文向大家介绍详解MongoDB中创建集合与删除集合的操作方法,包括了详解MongoDB中创建集合与删除集合的操作方法的使用技巧和注意事项,需要的朋友参考一下 创建集合:createCollection() 方法 是用来创建集合. 语法: 基本的 createCollection() 命令语法如下: 在命令中, name 是要创建的集合的名称. Options 是一个文件,用于指定配置的集合 参
我读过@JsonInclude这样的问题来忽略空值。这适用于实体中的常规字段,但不适用于集合。如果实体中的集合为空,Json序列化会给出一个空值。 如何对集合进行等效忽略?