I have this code where I build transaction:
public BooleanBuilder findAllTransactionsByUserId(Long userId, DateTime startDate, DateTime endDate,
String firstName, String lastName, String email) {
QTransaction transaction = QTransaction.transaction;
BooleanBuilder where = getTransactionWhereClause(startDate, endDate, firstName, lastName, email);
where.and(transaction.userId.eq(userId));
return where;
}
public BooleanBuilder getTransactionWhereClause(DateTime startDate, DateTime endDate,
String firstName, String lastName, String email) {
BooleanBuilder where = new BooleanBuilder();
QTransaction transaction = QTransaction.transaction;
if (startDate != null && endDate != null) {
where.and(transaction.transactionDate.between(startDate, endDate));
}
if (firstName != null) {
where.and(transaction.firstName.eq(firstName));
}
if (lastName != null) {
where.and(transaction.lastName.eq(lastName));
}
if (email != null) {
where.and(transaction.email.eq(email));
}
return where;
}
I'm missing the code for the class QTransaction
and I can't figure out what might be the content of the Java class so that I can create it manually.
Do you have any idea how I can implement the missing code?
I tried this gradle configuration:
plugins {
id 'org.springframework.boot' version '2.6.7'
id 'io.spring.dependency-management' version '1.0.11.RELEASE'
id 'java'
}
group = 'test'
version = '0.0.1'
sourceCompatibility = '17'
ext {
set('springCloudVersion', "2021.0.2")
queryDslVersion = '5.0.0'
}
repositories {
mavenCentral()
}
dependencies {
implementation 'org.springframework.boot:spring-boot-starter-web'
implementation 'org.springframework.boot:spring-boot-starter-validation'
implementation 'org.springframework.boot:spring-boot-starter-data-jpa'
implementation 'org.hibernate.validator:hibernate-validator'
testImplementation 'org.springframework.boot:spring-boot-starter-test'
implementation 'joda-time:joda-time:2.10.14'
implementation 'org.springframework.boot:spring-boot-starter-hateoas:2.6.7'
implementation 'org.postgresql:postgresql'
implementation 'org.jadira.usertype:usertype.core:7.0.0.CR1'
implementation 'org.springframework.cloud:spring-cloud-starter-bootstrap:3.1.2'
implementation 'org.apache.commons:commons-lang3:3.12.0'
implementation 'com.google.code.gson:gson:2.9.0'
// QueryDSL
implementation "com.querydsl:querydsl-jpa:${queryDslVersion}"
annotationProcessor "com.querydsl:querydsl-apt:${queryDslVersion}:jpa"
testImplementation "com.querydsl:querydsl-jpa:${queryDslVersion}"
testAnnotationProcessor "com.querydsl:querydsl-apt:${queryDslVersion}:jpa"
// Lombok
compileOnly 'org.projectlombok:lombok:1.18.24'
annotationProcessor 'org.projectlombok:lombok:1.18.24'
testCompileOnly 'org.projectlombok:lombok:1.18.24'
testAnnotationProcessor 'org.projectlombok:lombok:1.18.24'
// Swagger
implementation 'org.springdoc:springdoc-openapi-ui:1.6.8'
implementation 'org.liquibase:liquibase-core'
testImplementation 'org.junit.jupiter:junit-jupiter-api:5.8.2'
testRuntimeOnly 'org.junit.jupiter:junit-jupiter-engine:5.8.2'
}
dependencyManagement {
imports {
mavenBom "org.springframework.cloud:spring-cloud-dependencies:${springCloudVersion}"
}
}
tasks.named('test') {
useJUnitPlatform()
}
But JPA classes are not generated. I get exception:
import com.test.domain.QTransaction;
^
symbol: class QTransaction
location: package com.test.domain
Do you know what is the proper way to implement this?