web-dev-qa-db-ja.com

タイプcom.querydsl.core.types.Predicateは解決できません。必要な.classファイルから間接的に参照されます

EclipseにMavenSpring-Hibernate-JPA-QueryDslWebアプリケーションがあります。エラーが発生しますThe type com.querydsl.core.types.Predicate cannot be resolved in CommonRepositoryImpl.Javaクラス。エラーマーカーは、クラスのパッケージ宣言に表示されます。問題のJavaクラスは次のとおりです。

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

}

これが私の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>
8
John M. Yount

何らかの理由で、querydslには2つのグループがあります。 1つはcom.querydslで、もう1つはcom.mysema.querydslです。あなたが他のものを使う間、春は最初のもので働くようです。春にはcom.querydsl .core。types.Predicateが必要ですが、com.mysema.querydslバージョンでは、パッケージ名はcom.mysema .query。typesです。 。述語。

短編小説にはcom.querydslが必要です。私のために働いた構成は次のとおりでした:

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

私はこの問題を抱えていました。 this documentを使用してこれを解決できます。

このドキュメントによると、以下の依存関係とプラグインを使用できます

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

そして

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

カスタマイズメソッドをオーバーライドする必要があります。これはその場合のリポジトリの例です。

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