gpt4 book ai didi

java - 使用静态导入和使用 QueryDSL 创建新的 q 类型实例有什么区别?

转载 作者:行者123 更新时间:2023-11-30 11:07:54 24 4
gpt4 key购买 nike

我在生产代码行中看到这样的:

public Info findById(final long id){
QInfo info = QInfo.info;
JPAQuery query = newJpaQuery().from(info);
.....
}

另一方面:

import static com.example.system.app.entities.QApplication.application;

public Application findById(final long id){
return newJpaQuery().from(application).where(application.applicationId.eq(id)).uniqueResult(application);
}

使用静态导入和为每个方法创建 Q 实例有什么区别?其根源是否来自一些线程安全的观察?

最佳答案

Q 实例是线程安全的,但有时您需要在同一类型的查询中使用多个变量。

一般来说,如果每种类型只需要一个变量,默认变量就足够了,如果需要更多,则需要创建额外的变量。

这些附加变量可以按查询创建或作为常量创建。

例如

QInfo info = QInfo.info; // default variable
QInfo info2 = new QInfo("info2"); // extra variable
newJpaQuery().from(info).innerJoin(info.path, info2).where(...)

关于java - 使用静态导入和使用 QueryDSL 创建新的 q 类型实例有什么区别?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28720150/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com