2016-06-29 4 views
5

मेरे पास एक्लेप्से में एक मेवेन स्प्रिंग-हाइबरनेट-जेपीए-क्वेरी डीएसएल वेब एप्लिकेशन है जो कक्षा में The type com.querydsl.core.types.Predicate cannot be resolved त्रुटि दे रहा है। त्रुटि मार्कर कक्षा की पैकेज घोषणा पर प्रकट होता है।टाइप com.querydsl.core.types.Predicate को हल नहीं किया जा सकता है। यह अप्रत्यक्ष रूप से आवश्यक है। क्लास फाइलों से संदर्भित

<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

मैं भी इस समस्या है। क्या आपके पास इसका समाधान है। – wthamira

उत्तर

3

किसी कारण से वहाँ दो groupfor querydsl हैं:

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 फ़ाइल है: यहाँ सवाल में जावा वर्ग है। एक com.querydsl है, दूसरा com.mysema.querydsl है। ऐसा लगता है कि वसंत पहले के साथ काम करता है, जबकि आप दूसरे का उपयोग करते हैं। आप पाते हैं कि वसंत com.querydsl की आवश्यकता है। कोर .types.Predicate, लेकिन com.mysema.querydsl संस्करण में पैकेज नाम com.mysema है। क्वेरी .types.Predicate।

लंबी कहानी लघु वसंत 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> 
+0

Qclasses उत्पन्न करने के लिए आपने किस प्लगइन का उपयोग किया था? com.mysema.maven प्लगइन वसंत के साथ भी अच्छी तरह से काम नहीं कर रहा है, और मैं querydsl-maven-plugin work नहीं कर सकता। सुझाव? – Dolfiz

+0

मैं इसे आजमाएं। लेकिन यह एक ही त्रुटि बनाता है – wthamira

+0

यह काम नहीं किया –

0

मैं इस समस्या थी। आप इसे हल करने के लिए this दस्तावेज़ का उपयोग कर सकते हैं।

इस दस्तावेज़ के अनुसार हम निर्भरता नीचे का उपयोग करें और

 <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); 
    } 
} 
संबंधित मुद्दे

 संबंधित मुद्दे