<dependencies>
...
<dependency>
<groupId>com.querydsl</groupId>
<artifactId>querydsl-core</artifactId>
<version>${querydsl.version}</version>
</dependency>
<dependency>
<groupId>com.querydsl</groupId>
<artifactId>querydsl-jpa</artifactId>
<version>${querydsl.version}</version>
</dependency>
<dependency>
<groupId>com.querydsl</groupId>
<artifactId>querydsl-codegen</artifactId>
<version>${querydsl.version}</version>
<scope>provided</scope>
</dependency>
...
</dependencies>
<build>
...
<plugins>
...
<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>
@Entity
@Table(name = "employee")
public class Employee {
@Id
private Long id;
private String name;
private Integer age;
}
mvn clean compile
JPAQueryFactory queryFactory = new JPAQueryFactory(entityManager);
QEmployee employee = QEmployee.employee;
List<Employee> employees = queryFactory
.selectFrom(employee)
.where(employee.name.eq("John Doe"))
.fetch();