Как использовать Q Классы Querydsl?
Я хочу использовать QueryDSL с JPA, и я успешно подключил apt-maven.
pom.xml;
<build>
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-compiler-plugin</artifactId>
<version>3.1</version>
<configuration>
<source>1.8</source>
<target>1.8</target>
</configuration>
</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>target/generated-sources/java</outputDirectory>
<processor>com.querydsl.apt.jpa.JPAAnnotationProcessor </processor>
</configuration>
</execution>
</executions>
</plugin>
</plugins>
</build>
Также он сгенерировал Q классов доменных классов тоже успешно, но когда я import com.buraku.netas.domain.QUser;
, он выдает ошибку и не может найти классы Q.
Вот как выглядит структура моей папки после запуска mvn install;
Как вы видите, классы Q генерируются, но что еще я должен сделать, чтобы использовать их?
1 ответ
Решение
Сначала добавьте, реализует QuerydslPredicateExecutor для интерфейса UserRepository.
Во-вторых, создайте метод, который возвращает com.querydsl.core.types.Predicate, и постройте запрос (JPQL), используя BooleanBuilder и Q-классы.
Вы можете сослаться на мой пример кода jpa на github.