使用QueryDsl时,在Configuration配置类中初始化JPAQueryFactory时,报出如下错。
Error:(86, 39) java: 无法访问javax.inject.Provider 找不到javax.inject.Provider的类文件
Information:java: 某些输入文件使用了未经检查或不安全的操作。
Information:java: 有关详细信息, 请使用 -Xlint:unchecked 重新编译。
Configuration中的代码
@Bean
public JPAQueryFactory jpaQuery(EntityManager entityManager) {
JPAQueryFactory jpaQueryFactory = new JPAQueryFactory(entityManager);
return jpaQueryFactory;
}
解决方案:
pom.xml 中引入
<dependency>
<groupId>javax.inject</groupId>
<artifactId>javax.inject</artifactId>
<version>1</version>
</dependency>
要是还不行的话,引入
<dependency>
<groupId>javax.servlet</groupId>
<artifactId>javax.servlet-api</artifactId>
<scope>provided</scope>
</dependency>
<dependency>
<groupId>com.google.inject</groupId>
<artifactId>guice</artifactId>
<version>3.0</version>
</dependency>
<dependency>
<groupId>javax.inject</groupId>
<artifactId>javax.inject</artifactId>
<version>1</version>
</dependency>