2016-06-29 16 views
5

Ich habe eine Maven Spring-Hibernate-JPA-QueryDsl Web-Anwendung in Eclipse, die den Fehler The type com.querydsl.core.types.Predicate cannot be resolved in einer CommonRepositoryImpl.java Klasse gibt. Die Fehlermarkierung wird in der Paketdeklaration der Klasse angezeigt. Hier ist die Java-Klasse in Frage:Der Typ com.querydsl.core.types.Predicate kann nicht aufgelöst werden. Es ist indirekt referenziert von erforderlichen .class-Dateien

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; 
}  

}

Hier ist meine pom.xml-Datei:

<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

Ich habe auch dieses Problem. Hast du eine Lösung dafür? – wthamira

Antwort

3

Aus irgendeinem Grund gibt es zwei groupfor querydsl. Einer ist com.querydsl, der andere ist com.mysema.querydsl. Es scheint, dass der Frühling mit dem ersten funktioniert, während Sie den anderen benutzen. Sie können finden, dass Frühling com.querydsl erfordert. Kern .types.Predicate, aber in der Version com.mysema.querydsl ist der Paketname com.mysema. Abfrage .types.Predicate.

Lange Geschichte kurzer Frühling braucht com.querydsl. Konfiguration, die für mich gearbeitet wurde:

<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

Welches Plugin hast du benutzt, um Qclasses zu generieren? com.mysema.maven plugin scheint nicht gut mit dem Frühling zu arbeiten, und ich kann keine Querydsl-Maven-Plugin-Arbeit machen. Vorschläge? – Dolfiz

+0

Ich versuche das. aber es macht denselben Fehler – wthamira

+0

das hat nicht funktioniert –

0

ich dieses Problem hatte. Sie können das Dokument this verwenden, um dieses Problem zu lösen.

Gemäß diesem Dokument können wir unter Abhängigkeit ausnützt und Verstopfen

 <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> 

und

  <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> 

und haben customize Methode außer Kraft zu setzen. Dies ist ein Beispiel-Repository für diesen Fall.

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); 
    } 
}