我收到一个编译错误:
com/mycompany/hibernate5/Main.java:[10,46] cannot find symbol
symbol: class Customer_
location: package com.mycompany.hibernate5.sakila.domain
com/mycompany/hibernate5/Main.java:[11,46] cannot find symbol
symbol: class Address_
location: package com.mycompany.hibernate5.sakila.domain
2 errors
然而,当我移除mapstruct注释处理器时,它可以很好地编译。
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-compiler-plugin</artifactId>
<version>3.5.1</version>
<!-- <configuration>
<annotationProcessorPaths>
<path>
<groupId>org.mapstruct</groupId>
<artifactId>mapstruct-processor</artifactId>
<version>${org.mapstruct.version}</version>
</path>
</annotationProcessorPaths>
</configuration>-->
</plugin>
所以我认为mapstruct是在类生成之前扫描它们?对此有什么解决方案吗?
我也有同样的问题。我最终使用了这个组织。理学士。maven插件并使用
<plugin>
<groupId>org.bsc.maven</groupId>
<artifactId>maven-processor-plugin</artifactId>
<version>3.2.0</version>
<configuration>
<includes>**/mapper/*.java</includes> <!--package where annotated mapper classes reside-->
<processors>
<processor>org.mapstruct.ap.MappingProcessor</processor>
</processors>
</configuration>
<executions>
<execution>
<id>process</id>
<phase>generate-sources</phase>
<goals>
<goal>process</goal>
</goals>
</execution>
</executions>
<dependencies>
<dependency>
<groupId>org.mapstruct</groupId>
<artifactId>mapstruct-processor</artifactId>
<version>${org.mapstruct.version}</version>
</dependency>
</dependencies>
</plugin>
<plugin>
<groupId>org.apache.openjpa</groupId>
<artifactId>openjpa-maven-plugin</artifactId>
<configuration>
<includes>**/persistence/*.class</includes>
<excludes>**/persistence/*_.class</excludes>
<addDefaultConstructor>true</addDefaultConstructor>
<enforcePropertyRestrictions>true</enforcePropertyRestrictions>
</configuration>
<executions>
<execution>
<id>enhancer</id>
<phase>process-classes</phase>
<goals>
<goal>enhance</goal>
</goals>
</execution>
</executions>
</plugin>
我将hibernate JPA modelgen jar添加到路径中
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-compiler-plugin</artifactId>
<version>3.5.1</version>
<configuration>
<annotationProcessorPaths>
<path>
<groupId>org.mapstruct</groupId>
<artifactId>mapstruct-processor</artifactId>
<version>${org.mapstruct.version}</version>
</path>
<path>
<groupId>org.hibernate</groupId>
<artifactId>hibernate-jpamodelgen</artifactId>
<version>5.2.6.Final</version>
</path>
</annotationProcessorPaths>
</configuration>
</plugin>
现在起作用了谢谢
问题是,maven编译器
只拾取MapStruct注释处理器,而不是从生成Customer
类的处理器中选取的处理器(我假设它是Hibernate元模型生成器)。请看一下AnnotationProcessorPath的文档。
您有两种可能来解决您的问题:
>
以与添加MapStruct相同的方式添加所有注释处理器:
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-compiler-plugin</artifactId>
<version>3.5.1</version>
<configuration>
<annotationProcessorPaths>
<!-- Here you add the other paths -->
<path>
<groupId>org.mapstruct</groupId>
<artifactId>mapstruct-processor</artifactId>
<version>${org.mapstruct.version}</version>
</path>
</annotationProcessorPaths>
</configuration>
</plugin>
在您的依赖项中添加MapSTRt作为提供的依赖项(以免与您的jar/war打包):
<dependency>
<groupId>org.mapstruct</groupId>
<artifactId>mapstruct-processor</artifactId>
<version>${org.mapstruct.version}</version>
<scope>provided</scope>
</dependency>
我建议使用选项1,因为这样您就不会意外地使用来自某些注释处理器的传递依赖项。
问题内容: 我正在尝试使用选择器将图像放置在另一个图像上,但是我发现将图像放置在一个元素之前(仅在其他某个元素之前)根本不起作用。具体来说,我的风格是: 我发现这很好用: 但这不是: 我可以使用或元素代替它,浏览器可以将我的图像正确地覆盖在该元素中的图像上,但是如果我将overlay类应用于自身,则无法正常工作。 我希望这项工作能够正常进行,因为这会让我感到不舒服,但更重要的是,我有大约100个我
我正在将tomcat服务器从tomcat7升级到Tomcat8。但Struts1.1似乎不能在Tomcat8上工作。有人知道Tomcat8不支持Struts1.1吗。 下面是堆栈跟踪
我有两门课。我的基层: 还有我的另一门课。这个类扩展了BaseRequest类。 当我尝试创建映射器将我的Add Class转换为其他类时: 当我运行我的构建时,我收到了这个错误: 错误:(22,13)java:源参数中不存在名为“dateTransaction”的属性。你是说“空”吗?
假设我有一个IO Actor,能够通过TCP发送和接收消息。在我的演员中,我要求连接的另一方做出回应: 使用此代码,ask future超时,而包含参与者接收ask模式之外的原始消息。 你能在Akka IO演员身上使用ask模式吗?若否,原因为何?
我正试图使用Ehcache和Spring 3.1内置的缓存注释(@Cacheable、@CacheEvict和@CachePut)在我的应用程序中实现缓存。 我创建了一个缓存,如下所示: 我正在尝试使用@CachePut注释用新值更新此缓存,如下所示: 但是,新的“用户”没有添加到缓存中。这是因为无效返回类型吗?
问题内容: 特别是,我正在编写Django RESTful API来支持iOS应用程序,每当编写用于处理POST请求的方法时,我都会不断遇到Django的CSRF保护。 我的理解是,iOS管理的cookie不会被应用程序共享,这意味着我的会话cookie是安全的,并且没有其他应用程序可以使用它们。这是真的?如果是这样,我可以将我所有的API函数都标记为CSRF免除吗? 问题答案: 那不是CSR