我在博客上关注MapStruct,并在一起使用这3种技术时遇到了困难。我尝试了几种来自MapStruct文档、bug报告和帖子的方法,但是在每一种情况下,我最终都会在构建过程中收到以下异常。
是否有人在夸库斯下成功地与Lombok一起使用了MapStruct?任何帮助都是非常感谢的。
奇怪的是,在一个compile之后的第一个mvn clean总是成功的,而第二个compile或者运行这个应用程序会引发这样的情况:
Error:(9,8) java: Internal error in the mapping processor: java.lang.RuntimeException:
jav
@Mapper
public interface MyMapper<X extends Base_1, Y extends Base_2>{
public X mapBase_2ToBase_1(Y obj);
}
我希望将泛型类型Y的对象映射到泛型类型X的另一个对象。用mapstruct做这种事有可能吗?还是必须为泛型映射编写自定义映射程序?当我编译上面的代码时,我会得到编译错误。
Caused by: java.lang.NullPointerException
at org.mapstruct.ap.util.SpecificCompilerWorkaroun
我正在使用Mapstruct (与lombok一起使用),而Mapstruct在调用端点(使用MapStruct将DTO映射到实体)后对应用程序进行对接时失败。
java.base/java.net.URLClassLoader.findClass(URLClassLoader.java:435) at java.base/java.lang.ClassLoader.loadClass(ClassLoader.java:589) at org.springframework.boot.loader.LaunchedURLClassLoader.loadClass(LaunchedURLClas
我希望在类的层次结构中的许多方法上使用mapstruct,但我需要一些较高级别的抽象方法不会被mapstruct自动映射,因为它们将在子类中有完整的实现。有没有我在mapstruct文档中遗漏的注释? //I did not place @Mapper here because there are no methods to create maps for in this class
public abstract class SuperParentMapper {
//declaration I want mapstruct to ignore
public abstract H
正在使用的技术堆栈:
Java8 MapStruct :1.2.0.:1.16.18 IDE: IntelliJ - Lombok插件已经安装
最初,当我删除getter和setter并添加@Getter和@Setter注释时,mapstruct无法找到该属性并声明:Unknown property "id" in result type com.vg.once.dto.OneDto. Did you mean "null"?。
我了解到Lombok1.16.14或更高版本以及MapStruct 1.2.0。but 1或更高版本是兼容的,可以一起工作,但
我使用maven运行在kotlin mapstruct项目之上,但它发出的错误如下。
Exception in thread "main" java.lang.RuntimeException: java.lang.ClassNotFoundException: Cannot find implementation for org.mapstruct.example.kotlin.converter.PersonConverter
at org.mapstruct.factory.Mappers.getMapper(Mappers.java:61)
at or
我想知道Mapstruct是否以及如何帮助映射具有双向关系的对象(在我的例子中是一对多):
public class A{
private Set<B> listB;
}
public class B{
private A a;
}
从实体映射/映射到实体会生成StackOverflowError。(我预计这会发生)。另一方面,封闭的Mapstruct问题和似乎暗示mapstruct不会直接支持它。我试过这个例子:
但这是行不通的。无论是否应用"CycleAvoidingMappingContext“,堆栈溢出错误都保持不变。
那么如何使用循环和利用