Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/asp.net-mvc-3/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 使用QueryDSL使用静态导入和创建新的q类型实例有什么区别?_Java_Querydsl - Fatal编程技术网

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

Java 使用QueryDSL使用静态导入和创建新的q类型实例有什么区别?,java,querydsl,Java,Querydsl,我在生产代码行中看到如下内容: 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

我在生产代码行中看到如下内容:

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-实例是线程安全的,但有时在同一类型的查询中需要多个变量

通常,如果每个类型只需要一个变量,那么默认变量就足够了,如果需要更多,则需要创建其他变量

这些附加变量可以在每个查询中创建,也可以作为常量创建

e、 g


因此,如果我需要每个类一个Q实例,我可以在该类的每个方法中使用它,并使用静态导入,而不必担心多线程?
QInfo info = QInfo.info; // default variable
QInfo info2 = new QInfo("info2"); // extra variable
newJpaQuery().from(info).innerJoin(info.path, info2).where(...)