我在构建交易的地方有这样的代码:
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;
}
我缺少类QTransaction的代码,我无法找出Java类的内容,以便手动创建它。
你知道我如何实现缺失的代码吗?
我尝试了这个gradle配置:
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()
}
但是没有生成JPA类。我得到例外:
import com.test.domain.QTransaction;
^
symbol: class QTransaction
location: package com.test.domain
你知道正确的实施方式是什么吗?
Q类通常由QueryDSL和QueryDSL注释处理器工具生成。
我对Gradle不像对Maven那样熟悉,但Gradle的配置对我来说很好。以防万一,看看这个或这个其他相关的SO问题。
当与JPA一起使用时,正如您所猜测的,作为第一步,您必须创建一个表示表的类,您必须创建一个包含所需信息的实体。在您的情况下,它看起来类似于以下代码:
@Entity
public class Transaction {
@Id
@GeneratedValue
private Long id;
private Long userId;
private String firstName;
private String lastName;
private String email;
private DateTime transactionDate;
// getters and setters
}
请注意,我们使用@Entity
注释了类。
编译完类后,您会看到Gradle应该生成了一个名为QTransaction
的类。
除其他信息外,它将生成QTransaction类的公共静态最终实例:
public static final QTransaction transaction = new QTransaction("transaction");
这个类是构建查询时通常使用的类,如示例中所示。
本文虽然以Maven为重点,但可能会有所帮助。
我想尝试对java.lang中的java库进行更改,最终还可能对其他包进行更改。这意味着不使用,我希望至少能够分离出java.lang并编译它们。 如果使用rt.jar,则不可能在java.lang中编辑类的源代码,因为它们已经在rt.jar中找到了。 我在Mercurial中找到了repo:http://hg.openjdk.java.net/jdk8u/jdk8u/jdk/file/tip/s
本文向大家介绍Hibernate hql查询代码实例,包括了Hibernate hql查询代码实例的使用技巧和注意事项,需要的朋友参考一下 本文研究的主要是Hibernate hql查询的相关内容,具体如下。 HQL介绍 Hibernate语言查询(Hibernate Query Language,HQL)它是完全面向对象的查询语句,查询功能非常强大;具备多态、关联等特性,HQL查询也是Hiber
Your browser does not support the video tag.
所以,我想创建一个新的BouncyCastle 1.47罐子,它不是OSGi罐子。我已经从他们的站点下载了源代码(JDK1.5-1.7的“JCE with provider and lightweight API”下的bcprov-jdk15on-147.tar.gz文件),但是当我提取它和源代码时,我看不到构建脚本。看看他们的维基,他们说这应该是一个使用ant的简单案例。 以前有人这样做过吗,能
本文向大家介绍Python post请求实现代码实例,包括了Python post请求实现代码实例的使用技巧和注意事项,需要的朋友参考一下 使用post请求登陆小极客网 1、获取登陆接口,及用户名和密码参数 进入小极客网,先注册个账户,修改用户名和密码,然后点击登陆,打开debug调试-进入到network下 输入用户名和密码,点击登陆 如下图:获得登陆接口:http://www.xi
14. 构建代码 Spring Boot并不要求任何特殊的代码布局,然而,存在一些有用的最佳实践。 14.1 使用“default”包 如果一个类没有声明包,则认为这个类位于“默认包”中。通常不鼓励使用“默认包”,应当避免使用它。对于使用了@ComponentScan、@EntityScan或@SpringBootApplication注解的Spring Boot程序,“默认包”可能会导致特殊问题