2016-06-29 19 views
5

Ho un'applicazione web Maven Spring-Hibernate-JPA-QueryDsl in Eclipse che sta dando l'errore The type com.querydsl.core.types.Predicate cannot be resolved in una classe CommonRepositoryImpl.java. L'indicatore di errore appare nella dichiarazione del pacchetto della classe. Ecco la classe java in questione:Il tipo com.querydsl.core.types.Predicate non può essere risolto. È indirettamente referenziato dai file .class richiesti

package com.kletus.silentHomeCemetery.frameworkextension; 

import com.kletus.silentHomeCemetery.frameworkextension.InjectLogger; 

import java.io.Serializable; 
import java.lang.annotation.Annotation; 
import java.util.ArrayList; 
import java.util.LinkedHashMap; 
import java.util.List; 
import java.util.Map; 

import javax.persistence.EntityManager; 
import javax.persistence.Query; 

import com.mysema.query.jpa.JPQLQuery; 

import org.apache.commons.lang3.StringUtils; 
import org.hibernate.Filter; 
import org.hibernate.SQLQuery; 
import org.hibernate.Session; 
import org.slf4j.Logger; 
import org.springframework.data.jpa.repository.support.JpaEntityInformation; 
import org.springframework.data.jpa.repository.support.QueryDslJpaRepository; 
import org.springframework.data.jpa.repository.support.SimpleJpaRepository; 
import org.springframework.data.repository.NoRepositoryBean; 
import org.springframework.transaction.annotation.Transactional; 

@SuppressWarnings("unchecked") 
@NoRepositoryBean 
@Transactional 
public class CommonRepositoryImpl<T, ID extends Serializable> extends 
    QueryDslJpaRepository<T, ID> implements CommonRepository<T, ID>, 
    Serializable 

{ 
    private static final long serialVersionUID = 1L; 

@InjectLogger 
private Logger logger; 

private final JpaEntityInformation<T, ID> entityInformation; 
private final EntityManager em; 
//private final DefaultPersistenceProvider provider; 

private Class<?> springDataRepositoryInterface; 

public Class<?> getSpringDataRepositoryInterface() { 
    return springDataRepositoryInterface; 
} 

public void setSpringDataRepositoryInterface(
     Class<?> springDataRepositoryInterface) { 
    this.springDataRepositoryInterface = springDataRepositoryInterface; 
} 

/** 
* Creates a new {@link SimpleJpaRepository} to manage objects of the given 
* {@link JpaEntityInformation}. 
* 
* @param entityInformation 
* @param entityManager 
*/ 
public CommonRepositoryImpl(JpaEntityInformation<T, ID> entityInformation, 
     EntityManager entityManager, Class<?> springDataRepositoryInterface) { 
    //QueryDslJpaRepository(JpaEntityInformation<T,ID> entityInformation, javax.persistence.EntityManager entityManager); 
    super(entityInformation, entityManager); 
    this.entityInformation = entityInformation; 
    this.em = entityManager; 
    //this.provider = DefaultPersistenceProvider.fromEntityManager(entityManager); 
    this.springDataRepositoryInterface = springDataRepositoryInterface; 
} 

/** 
* Creates a new {@link SimpleJpaRepository} to manage objects of the given 
* domain type. 
* 
* @param domainClass 
* @param em 
*/ 
//public QueryDslRepositoryImpl(Class<T> domainClass, EntityManager em) { 
    //this(JpaEntityInformationSupport.getMetadata(domainClass, em)); 
//} 

public <S extends T> S save(S entity) { 
    if (this.entityInformation.isNew(entity)) { 
     this.em.persist(entity); 
     //flush(); 
     return entity; 
    }else{ 
    entity = this.em.merge(entity); 
    //flush(); 
    return entity; 
    } 
} 

public T saveWithoutFlush(T entity) { 
    return super.save(entity); 
} 

public List<T> saveWithoutFlush(Iterable<? extends T> entities) { 
    List<T> result = new ArrayList<T>(); 
    if (entities == null) { 
     return result; 
    } 

    for (T entity : entities) { 
     result.add(saveWithoutFlush(entity)); 
    } 
    return result; 
} 

public List queryNatively(String nativeQueryName, 
     LinkedHashMap<String, Class<?>> inEntityClasses, Map<String, Object> inParams) { 
    SQLQuery query = this.createHibernateNativeQuery(nativeQueryName, 
      inParams); 
    // add entities 
    if (inEntityClasses != null) { 
     for (Object key : inEntityClasses.keySet()) { 
      String entityClassAlias = key.toString(); 
      Class<?> entityClass = (Class<?>) inEntityClasses.get(key); 
      query.addEntity(entityClassAlias, entityClass); 
     } 
    } 

    // add parameter 
    if (inParams != null) { 
     for (Object key : inParams.keySet()) { 
      String queryParamName = key.toString(); 
      Object queryParamValue = inParams.get(key); 
      query.setParameter(queryParamName, queryParamValue); 
     } 
    } 
    return (query != null) ? query.list() : null; 
} 

public List<?> queryNativelyForDto(String nativeQueryName, 
     Map<String, Object> inParams, Class<?> dtoClass) { 
    SQLQuery query = this.createHibernateNativeQuery(nativeQueryName, 
      inParams); 

    // add parameter 
    if (inParams != null) { 
     for (Object key : inParams.keySet()) { 
      String queryParamName = key.toString(); 
      Object queryParamValue = inParams.get(key); 
      query.setParameter(queryParamName, queryParamValue); 
     } 
    } 

    return (query != null) ? query.setResultTransformer(
       new ResultTransformerEx(dtoClass)).list() : null; 
} 

private SQLQuery createHibernateNativeQuery(String nativeQueryName, 
     Map inParams) { 
    if (CommonRepository.class 
      .isAssignableFrom(getSpringDataRepositoryInterface())) { 

     Annotation nativeQueryAnn = getSpringDataRepositoryInterface() 
       .getAnnotation(NativeQueries.class); 
     if (nativeQueryAnn != null) { 
      NativeQueries nativeQueries = (NativeQueries) nativeQueryAnn; 
      NativeQuery[] queries = nativeQueries.queries(); 
      for (NativeQuery sqlquery : queries) { 

       if (StringUtils.equals(nativeQueryName, sqlquery.name())) { 
        String sql = sqlquery.sql(); 

        Session hiernateSess = (Session)em.getDelegate(); 
            //em.unwrap(Session.class); //Only in JPA 2 
        SQLQuery query = hiernateSess.createSQLQuery(sql); 

        // add parameter 
        if (inParams != null) { 
         for (Object key : inParams.keySet()) { 
          String queryParamName = key.toString(); 
          Object queryParamValue = inParams.get(key); 
          query.setParameter(queryParamName, 
            queryParamValue); 
         } 
        } 

        return query; 
       } 
      } 
     } 
    } 
    return null; 
} 

public List<T> doQueryWithFilter(String filterName, String filterQueryName, 
     Map<String, Object> inFilterParams, Map<String, Object> inQueryParams) { 
    if (CommonRepository.class 
      .isAssignableFrom(getSpringDataRepositoryInterface())) { 
     Annotation entityFilterAnn = getSpringDataRepositoryInterface() 
       .getAnnotation(EntityFilter.class); 
     if (entityFilterAnn != null) { 
      EntityFilter entityFilter = (EntityFilter) entityFilterAnn; 
      FilterQuery[] filterQuerys = entityFilter.filterQueries(); 
      for (FilterQuery fQuery : filterQuerys) { 
       if (StringUtils.equals(filterQueryName, fQuery.name())) { 
        String jpql = fQuery.jpql(); 
        Session sess = (Session) em.getDelegate(); //em.unwrap 
        Filter filter = sess.enableFilter(filterName); 

        // set filter parameter 
        for (Object key : inFilterParams.keySet()) { 
         String filterParamName = key.toString(); 
         Object filterParamValue = inFilterParams.get(key); 
         filter.setParameter(filterParamName, 
           filterParamValue); 
        } 

        // set query parameter 
        Query query = em.createQuery(jpql); 
        for (Object key : inQueryParams.keySet()) { 
         String queryParamName = key.toString(); 
         Object queryParamValue = inQueryParams.get(key); 
         query.setParameter(queryParamName, queryParamValue); 
        } 
        return query.getResultList(); 
       } 
      } 
     } 
    } 
    return null; 
}  

}

Qui è il mio file pom.xml:

<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org  /2001/XMLSchema-instance" 
    xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven- v4_0_0.xsd"> 
    <modelVersion>4.0.0</modelVersion> 
    <groupId>EclipseWorks</groupId> 
    <artifactId>SilentHomeCemetery</artifactId> 
    <packaging>war</packaging> 
    <version>0.0.1-SNAPSHOT</version> 
    <name>SilentHomeCemetery Maven Webapp</name> 
    <url>http://maven.apache.org</url> 
<properties> 
    <!-- Generic properties --> 
    <java.version>1.7</java.version> 
    <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding> 
    <project.reporting.outputEncoding>UTF-8</project.reporting.outputEncoding> 
    <maven.compiler.source>1.8</maven.compiler.source> 
    <maven.compiler.target>1.8</maven.compiler.target> 

    <!-- Spring --> 
    <spring-framework.version>3.1.2.RELEASE</spring-framework.version> 
    <aspectj.version>1.7.4</aspectj.version> 

    <!-- Hibernate/JPA --> 
    <hibernate.version>4.1.7.Final</hibernate.version> 

    <!-- JSF Version --> 
    <jsf.version>2.2.10</jsf.version> 

    <!-- Logging --> 
    <logback.version>1.0.13</logback.version> 
    <slf4j.version>1.7.5</slf4j.version>  
</properties> 

<dependencies> 
    <dependency> 
     <groupId>junit</groupId> 
     <artifactId>junit</artifactId> 
     <scope>test</scope> 
    </dependency> 
    <dependency> 
     <groupId>javax.servlet</groupId> 
     <artifactId>javax.servlet-api</artifactId> 
     <scope>provided</scope> 
    </dependency> 

    <dependency> 
     <groupId>com.ibm.db2</groupId> 
     <artifactId>db2jcc4</artifactId> 
    </dependency> 

    <dependency> 
     <groupId>com.ibm.db2</groupId> 
     <artifactId>db2jcc4_license_cu</artifactId> 
    </dependency> 

    <!-- Spring and Transactions --> 
    <dependency> 
     <groupId>org.springframework</groupId> 
     <artifactId>spring-core</artifactId> 
    </dependency> 
    <dependency> 
     <groupId>org.springframework</groupId> 
     <artifactId>spring-tx</artifactId> 
    </dependency> 
    <dependency> 
     <groupId>org.springframework</groupId> 
     <artifactId>spring-webmvc</artifactId> 
    </dependency> 
    <dependency> 
     <groupId>org.springframework.data</groupId> 
     <artifactId>spring-data-commons-core</artifactId> 
    </dependency> 

    <!-- @Inject --> 
    <dependency> 
     <groupId>javax.inject</groupId> 
     <artifactId>javax.inject</artifactId> 
    </dependency> 
    <!-- AspectJ --> 
    <dependency> 
     <groupId>org.aspectj</groupId> 
     <artifactId>aspectjrt</artifactId> 
    </dependency> 
    <!-- Spring ORM support --> 
    <dependency> 
     <groupId>org.springframework</groupId> 
     <artifactId>spring-orm</artifactId> 
    </dependency> 

    <!-- Hibernate --> 
    <dependency> 
     <groupId>org.hibernate</groupId> 
     <artifactId>hibernate-entitymanager</artifactId> 
    </dependency> 
    <dependency> 
     <groupId>org.hibernate</groupId> 
     <artifactId>hibernate-core</artifactId> 
    </dependency> 

    <dependency> 
     <groupId>commons-dbcp</groupId> 
     <artifactId>commons-dbcp</artifactId> 
    </dependency> 

    <!-- JSF Dependencies --> 
    <dependency> 
     <groupId>com.sun.faces</groupId> 
     <artifactId>jsf-api</artifactId> 
    </dependency> 

    <dependency> 
     <groupId>com.sun.faces</groupId> 
     <artifactId>jsf-impl</artifactId> 
    </dependency> 

    <!-- Logging with SLF4J & LogBack --> 
    <dependency> 
     <groupId>org.slf4j</groupId> 
     <artifactId>slf4j-api</artifactId> 
     <scope>compile</scope> 
    </dependency> 
    <dependency> 
     <groupId>ch.qos.logback</groupId> 
     <artifactId>logback-classic</artifactId> 
     <scope>runtime</scope> 
    </dependency> 
    <!-- http://repo1.maven.org/maven --> 
    <dependency> 
     <groupId>javax.servlet</groupId> 
     <artifactId>jstl</artifactId> 
    </dependency> 

    <dependency> 
     <groupId>javax.servlet</groupId> 
     <artifactId>servlet-api</artifactId> 
    </dependency> 

    <dependency> 
     <groupId>javax.servlet.jsp</groupId> 
     <artifactId>jsp-api</artifactId> 
    </dependency> 

    <dependency> 
     <groupId>com.sun.el</groupId> 
     <artifactId>el-ri</artifactId> 
    </dependency> 

    <dependency> 
     <groupId>javax</groupId> 
     <artifactId>javaee-web-api</artifactId> 
     <scope>provided</scope> 
    </dependency> 

    <dependency> 
     <groupId>org.primefaces</groupId> 
     <artifactId>primefaces</artifactId> 
    </dependency> 
    <dependency> 
     <groupId>org.springframework.security</groupId> 
     <artifactId>spring-security-config</artifactId> 
    </dependency> 
    <dependency> 
     <groupId>org.springframework.security</groupId> 
     <artifactId>spring-security-core</artifactId> 
    </dependency> 
    <dependency> 
     <groupId>org.springframework.security</groupId> 
     <artifactId>spring-security-web</artifactId> 
    </dependency> 
    <dependency> 
     <groupId>org.springframework</groupId> 
     <artifactId>spring-binding</artifactId> 
    </dependency> 
    <dependency> 
     <groupId>org.springframework.webflow</groupId> 
     <artifactId>spring-faces</artifactId> 
    </dependency> 
    <dependency> 
     <groupId>org.springframework</groupId> 
     <artifactId>spring-webflow</artifactId> 
    </dependency> 
    <dependency> 
     <groupId>org.springframework</groupId> 
     <artifactId>spring-aop</artifactId> 
    </dependency> 
    <dependency> 
     <groupId>org.springframework</groupId> 
     <artifactId>spring-aspects</artifactId> 
    </dependency> 

    <dependency> 
     <groupId>javax</groupId> 
     <artifactId>javaee-api</artifactId> 
    </dependency> 
    <dependency> 
     <groupId>org.eclipse.persistence</groupId> 
     <artifactId>eclipselink</artifactId> 
    </dependency> 
    <dependency> 
     <groupId>org.apache.logging.log4j</groupId> 
     <artifactId>log4j-core</artifactId> 
    </dependency> 
    <dependency> 
     <groupId>org.springframework.data</groupId> 
     <artifactId>spring-data-jpa</artifactId> 
    </dependency> 
    <dependency> 
     <groupId>com.mysema.querydsl</groupId> 
     <artifactId>querydsl-jpa</artifactId> 
     <version>3.4.3</version> 
    </dependency> 
    <dependency> 
     <groupId>com.mysema.querydsl</groupId> 
     <artifactId>querydsl-core</artifactId> 
     <version>2.9.0.FIXED</version> 
    </dependency> 
    <dependency> 
     <groupId>com.mysema.querydsl</groupId> 
     <artifactId>querydsl-jpa</artifactId> 
     <version>2.9.0.FIXED</version> 
    </dependency>  
    <dependency> 
     <groupId>com.mysema.querydsl</groupId> 
     <artifactId>querydsl-sql</artifactId> 
     <version>2.9.0</version> 
    </dependency> 
    <dependency> 
     <groupId>org.apache.commons</groupId> 
     <artifactId>commons-lang3</artifactId> 
    </dependency> 
    <dependency> 
     <groupId>com.google.inject</groupId> 
     <artifactId>guice</artifactId> 
    </dependency> 
    <dependency> 
     <groupId>org.slf4j</groupId> 
     <artifactId>slf4j-log4j12</artifactId> 
    </dependency> 
    <dependency> 
     <groupId>com.google.inject.extensions</groupId> 
     <artifactId>guice-servlet</artifactId> 
    </dependency> 
    <dependency> 
     <groupId>org.hibernate</groupId> 
     <artifactId>hibernate-validator</artifactId> 
    </dependency> 
    <dependency> 
     <groupId>com.mysema.querydsl</groupId> 
     <artifactId>querydsl-sql</artifactId> 
     <version>2.9.0</version> 
    </dependency> 
    <dependency> 
     <groupId>com.mysema.querydsl</groupId> 
     <artifactId>querydsl-apt</artifactId> 
     <version>2.9.0</version> 
    </dependency> 
    <dependency> 
     <groupId>com.mysema.querydsl</groupId> 
     <artifactId>querydsl-collections</artifactId> 
     <version>2.9.0</version> 
    </dependency> 
    <dependency> 
     <groupId>com.mysema.querydsl</groupId> 
     <artifactId>querydsl-codegen</artifactId> 
     <version>2.9.0.FIXED</version> 
    </dependency> 
</dependencies> 
<build> 
<pluginManagement> 
    <plugins> 

    <plugin> 
     <groupId>org.codehaus.mojo</groupId> 
     <artifactId>build-helper-maven-plugin</artifactId> 
     <version>1.10</version> 
     <executions> 
      <execution> 
       <id>add-resource</id> 
       <phase>generate-sources</phase> 
       <goals> 
        <goal>add-source</goal> 
       </goals> 
       <configuration> 
        <sources> 
         <source>src/main/resources</source> 
        </sources> 
       </configuration> 
      </execution> 
     </executions> 
    </plugin> 

    <plugin> 
     <groupId>com.mysema.maven</groupId> 
     <artifactId>apt-maven-plugin</artifactId> 
     <version>1.1.3</version> 
     <executions> 
      <execution> 
       <goals> 
        <goal>process</goal> 
       </goals> 
       <configuration> 
        <outputDirectory>src/main/resources</outputDirectory> 
        <processor>com.mysema.query.apt.jpa.JPAAnnotationProcessor</processor> 
       </configuration> 
      </execution> 
     </executions> 
     <dependencies> 
      <dependency> 
       <groupId>com.mysema.querydsl</groupId> 
       <artifactId>querydsl-apt</artifactId> 
       <version>2.9.0</version> 
      </dependency> 
     </dependencies>    
    </plugin> 
     <plugin> 
      <groupId>org.apache.maven.plugins</groupId> 
      <artifactId>maven-war-plugin</artifactId> 
      <version>2.6</version> 
      <configuration> 
       <webResources> 
        <resource> 
         <filtering>true</filtering> 
         <directory>src/main/webapp/WEB-INF</directory> 
         <includes> 
          <include>**/*.xhtml</include> 
          <include>**/*.xml</include> 
         </includes> 
        </resource> 
        <resource> 
         <filtering>true</filtering> 
         <directory>src/main/resources</directory> 
         <includes> 
          <include>**/*.xml</include> 
          <include>**/*.properties</include> 
         </includes> 
         <targetPath>WEB-INF/classes</targetPath> 
        </resource> 
       </webResources> 
      </configuration> 
     </plugin> 
     <plugin> 
      <groupId>org.apache.maven.plugins</groupId> 
      <artifactId>maven-compiler-plugin</artifactId> 
      <version>3.5.1</version> 
     </plugin> 
     <plugin> 
      <groupId>org.bsc.maven</groupId> 
      <artifactId>maven-processor-plugin</artifactId> 
      <version>3.1.0</version> 
     </plugin> 
    </plugins> 

    </pluginManagement> 
</build> 
<dependencyManagement> 
    <dependencies> 
     <dependency> 
      <groupId>junit</groupId> 
      <artifactId>junit</artifactId> 
      <version>3.8.1</version> 
     </dependency> 
     <dependency> 
      <groupId>javax.servlet</groupId> 
      <artifactId>javax.servlet-api</artifactId> 
      <version>3.1.0</version> 
     </dependency> 
     <dependency> 
      <groupId>com.ibm.db2</groupId> 
      <artifactId>db2jcc4</artifactId> 
      <version>10.1.200.238</version> 
     </dependency> 
     <dependency> 
      <groupId>com.ibm.db2</groupId> 
      <artifactId>db2jcc4_license_cu</artifactId> 
      <version>10.1.200.238</version> 
     </dependency> 
     <dependency> 
      <groupId>org.springframework</groupId> 
      <artifactId>spring-core</artifactId> 
      <version>3.1.2.RELEASE</version> 
     </dependency> 
     <dependency> 
      <groupId>org.springframework</groupId> 
      <artifactId>spring-tx</artifactId> 
      <version>${spring-framework.version}</version> 
     </dependency> 
     <dependency> 
      <groupId>org.springframework</groupId> 
      <artifactId>spring-webmvc</artifactId> 
      <version>${spring-framework.version}</version> 
     </dependency> 
     <dependency> 
      <groupId>org.springframework.data</groupId> 
      <artifactId>spring-data-commons-core</artifactId> 
      <version>1.1.0.RELEASE</version> 
     </dependency> 
     <dependency> 
      <groupId>javax.inject</groupId> 
      <artifactId>javax.inject</artifactId> 
      <version>1</version> 
     </dependency> 
     <dependency> 
      <groupId>org.aspectj</groupId> 
      <artifactId>aspectjrt</artifactId> 
      <version>${aspectj.version}</version> 
     </dependency> 
     <dependency> 
      <groupId>org.springframework</groupId> 
      <artifactId>spring-orm</artifactId> 
      <version>${spring-framework.version}</version> 
     </dependency> 
     <dependency> 
      <groupId>org.hibernate</groupId> 
      <artifactId>hibernate-entitymanager</artifactId> 
      <version>${hibernate.version}</version> 
     </dependency> 
     <dependency> 
      <groupId>org.hibernate</groupId> 
      <artifactId>hibernate-core</artifactId> 
      <version>${hibernate.version}</version> 
     </dependency> 
     <dependency> 
      <groupId>commons-dbcp</groupId> 
      <artifactId>commons-dbcp</artifactId> 
      <version>1.4</version> 
     </dependency> 
     <dependency> 
      <groupId>com.sun.faces</groupId> 
      <artifactId>jsf-api</artifactId> 
      <version>${jsf.version}</version> 
     </dependency> 
     <dependency> 
      <groupId>com.sun.faces</groupId> 
      <artifactId>jsf-impl</artifactId> 
      <version>${jsf.version}</version> 
     </dependency> 
     <dependency> 
      <groupId>org.slf4j</groupId> 
      <artifactId>slf4j-api</artifactId> 
      <version>${slf4j.version}</version> 
     </dependency> 
     <dependency> 
      <groupId>ch.qos.logback</groupId> 
      <artifactId>logback-classic</artifactId> 
      <version>${logback.version}</version> 
     </dependency> 
     <dependency> 
      <groupId>javax.servlet</groupId> 
      <artifactId>jstl</artifactId> 
      <version>1.2</version> 
     </dependency> 
     <dependency> 
      <groupId>javax.servlet</groupId> 
      <artifactId>servlet-api</artifactId> 
      <version>2.5</version> 
     </dependency> 
     <dependency> 
      <groupId>javax.servlet.jsp</groupId> 
      <artifactId>jsp-api</artifactId> 
      <version>2.1</version> 
     </dependency> 
     <dependency> 
      <groupId>com.sun.el</groupId> 
      <artifactId>el-ri</artifactId> 
      <version>1.0</version> 
     </dependency> 
     <dependency> 
      <groupId>javax</groupId> 
      <artifactId>javaee-web-api</artifactId> 
      <version>7.0</version> 
     </dependency> 
     <dependency> 
      <groupId>org.primefaces</groupId> 
      <artifactId>primefaces</artifactId> 
      <version>5.2</version> 
     </dependency> 
     <dependency> 
      <groupId>org.springframework.security</groupId> 
      <artifactId>spring-security-config</artifactId> 
      <version>3.1.2.RELEASE</version> 
     </dependency> 
     <dependency> 
      <groupId>org.springframework.security</groupId> 
      <artifactId>spring-security-core</artifactId> 
      <version>3.1.2.RELEASE</version> 
     </dependency> 
     <dependency> 
      <groupId>org.springframework.security</groupId> 
      <artifactId>spring-security-web</artifactId> 
      <version>3.1.2.RELEASE</version> 
     </dependency> 
     <dependency> 
      <groupId>org.springframework</groupId> 
      <artifactId>spring-binding</artifactId> 
      <version>1.0.6</version> 
     </dependency> 
     <dependency> 
      <groupId>org.springframework.webflow</groupId> 
      <artifactId>spring-faces</artifactId> 
      <version>2.4.2.RELEASE</version> 
     </dependency> 
     <dependency> 
      <groupId>org.springframework</groupId> 
      <artifactId>spring-webflow</artifactId> 
      <version>1.0.6</version> 
     </dependency> 
     <dependency> 
      <groupId>org.springframework</groupId> 
      <artifactId>spring-aop</artifactId> 
      <version>3.1.2.RELEASE</version> 
     </dependency> 
     <dependency> 
      <groupId>org.springframework</groupId> 
      <artifactId>spring-aspects</artifactId> 
      <version>3.1.2.RELEASE</version> 
     </dependency> 
     <dependency> 
      <groupId>javax</groupId> 
      <artifactId>javaee-api</artifactId> 
      <version>7.0</version> 
     </dependency> 
     <dependency> 
      <groupId>org.eclipse.persistence</groupId> 
      <artifactId>eclipselink</artifactId> 
      <version>2.6.2</version> 
     </dependency> 
     <!-- http://mvnrepository.com/artifact/log4j/log4j --> 
     <dependency> 
      <groupId>log4j</groupId> 
      <artifactId>log4j</artifactId> 
      <version>1.2.17</version> 
      <scope>compile</scope> 
     </dependency> 
     <dependency> 
      <groupId>org.apache.logging.log4j</groupId> 
      <artifactId>log4j-api</artifactId> 
      <version>2.5</version> 
     </dependency> 
     <dependency> 
      <groupId>org.apache.logging.log4j</groupId> 
      <artifactId>log4j-core</artifactId> 
      <version>2.5</version> 
     </dependency> 
     <dependency> 
      <groupId>org.springframework.data</groupId> 
      <artifactId>spring-data-jpa</artifactId> 
      <version>1.10.0.RELEASE</version> 
     </dependency>   
     <dependency> 
      <groupId>org.apache.commons</groupId> 
      <artifactId>commons-lang3</artifactId> 
      <version>3.4</version> 
     </dependency> 
     <dependency> 
      <groupId>com.google.inject</groupId> 
      <artifactId>guice</artifactId> 
      <version>3.0</version> 
     </dependency> 
     <dependency> 
      <groupId>org.slf4j</groupId> 
      <artifactId>slf4j-log4j12</artifactId> 
      <version>1.7.1</version> 
     </dependency> 
     <dependency> 
      <groupId>com.google.inject.extensions</groupId> 
      <artifactId>guice-servlet</artifactId> 
      <version>3.0</version> 
     </dependency> 
     <dependency> 
      <groupId>org.hibernate</groupId> 
      <artifactId>hibernate-validator</artifactId> 
      <version>5.2.3.Final</version> 
     </dependency> 
     <!-- https://mvnrepository.com/artifact/org.hibernate/hibernate-entitymanager --> 
     <dependency> 
      <groupId>org.hibernate</groupId> 
      <artifactId>hibernate-entitymanager</artifactId> 
      <version>4.1.9.Final</version> 
     </dependency> 
    </dependencies> 
</dependencyManagement> 

+0

Ho anche questo problema. Hai una soluzione per questo. – wthamira

risposta

3

Per qualche motivo ci sono due querydsl groupfor. Uno è com.querydsl, l'altro è com.mysema.querydsl. Sembra che la primavera funzioni con la prima, mentre tu usi l'altra. Potete trovare che la primavera richiede com.querydsl. core .types.Predicate, ma nella versione com.mysema.querydsl il nome del pacchetto è com.mysema. query .types.Predicate.

La lunga primavera corta ha bisogno di com.querydsl. configurazione che ha lavorato per me era:

<dependency> 
     <groupId>org.springframework.data</groupId> 
     <artifactId>spring-data-jpa</artifactId> 
     <version>1.10.2.RELEASE</version> 
    </dependency> 
    <dependency> 
     <groupId>org.springframework.data</groupId> 
     <artifactId>spring-data-commons</artifactId> 
     <version>1.12.2.RELEASE</version> 
    </dependency> 
    <dependency> 
     <groupId>com.querydsl</groupId> 
     <artifactId>querydsl-core</artifactId> 
     <version>4.1.3</version> 
    </dependency> 
    <dependency> 
     <groupId>com.querydsl</groupId> 
     <artifactId>querydsl-apt</artifactId> 
     <version>4.1.3</version> 
    </dependency> 
    <dependency> 
     <groupId>com.querydsl</groupId> 
     <artifactId>querydsl-jpa</artifactId> 
     <version>4.1.3</version> 
    </dependency> 
+0

Quale plugin hai usato per generare Qclasses? il plugin com.mysema.maven sembra non funzionare bene anche con Spring, e non riesco a far funzionare querydsl-maven-plugin. Suggerimenti? – Dolfiz

+0

Ci provo. ma fa lo stesso errore – wthamira

+0

questo non ha funzionato –

0

ho avuto questo problema. È possibile utilizzare il documento this per risolvere questo problema.

Secondo questo documento possiamo usare sotto la dipendenza e collegando

 <dependency> 
      <groupId>com.querydsl</groupId> 
      <artifactId>querydsl-apt</artifactId> 
      <version>4.1.3</version> 
      <scope>provided</scope> 
     </dependency> 
     <dependency> 
      <groupId>com.querydsl</groupId> 
      <artifactId>querydsl-jpa</artifactId> 
      <version>4.1.3</version> 
     </dependency> 
     <dependency> 
      <groupId>org.slf4j</groupId> 
      <artifactId>slf4j-log4j12</artifactId> 
      <version>1.6.1</version> 
     </dependency> 

e

  <plugin> 
       <groupId>com.mysema.maven</groupId> 
       <artifactId>apt-maven-plugin</artifactId> 
       <version>1.1.3</version> 
       <executions> 
        <execution> 
         <goals> 
          <goal>process</goal> 
         </goals> 
         <configuration> 
          <outputDirectory>target/generated-sources/java</outputDirectory> 
          <processor>com.querydsl.apt.jpa.JPAAnnotationProcessor</processor> 
         </configuration> 
        </execution> 
       </executions> 
      </plugin> 

e devono ignorare il metodo Personalizza. Questo è un repository di esempio per quel caso.

public interface UserRepository extends PagingAndSortingRepository<User, Long>,QueryDslPredicateExecutor<User>,QuerydslBinderCustomizer<QUser> { 


    @Override 
    default public void customize(QuerydslBindings bindings, QUser root) { 
     bindings.bind(String.class).first(
      (StringPath path, String value) -> path.containsIgnoreCase(value)); 
     bindings.excluding(root.email); 
    } 
} 
Problemi correlati