当前位置: 首页 > 知识库问答 >
问题:

查询带有参数的DSL请求,可以吗?

秦联
2023-03-14

在SQL中,使用字符串连接进行参数化查询非常简单。例如,我根据预设的参数(带有列名的字符串)从DB表中获取必要的列

String id_column = "id", city_column = "city", streetname_column ="streetname", housenumber_column = "housenumber"; //Parameters
        stmt = c.createStatement();
        ResultSet rs = stmt.executeQuery( "SELECT "+id_column+","+streetname_column+" FROM address" ); //How do the same in QueryDSL?
        ResultSetMetaData rsmd = rs.getMetaData();
        for (int i = 0; i < rsmd.getColumnCount(); i++){
            System.out.print(rsmd.getColumnName(i+1)+" ");
        }
        while ( rs.next() ) {
            System.out.print("\n");
            for (int i = 0; i < rsmd.getColumnCount(); i++){
                System.out.print(
                        rs.getString(rsmd.getColumnName(i+1)) + " "
                );
            }
        }

我如何用这个做同样的事情(你也可以做你自己的例子)查询DSL请求

List<Address> q1=queryFactory.selectFrom(address)
                    .fetch();

在此查询中,我得到了整个表。

共有1个答案

苍温文
2023-03-14

最后,我找到了答案。该解决方案位于此页面:使用游戏.db的示例

在我的问题中,解决方案如下:

package controllers;
import play.db.jpa.JPAApi;
import play.db.jpa.Transactional;
import javax.inject.Inject;
import javax.persistence.Query;
import java.util.ArrayList;
import java.util.List;

public class TestingReportsDep{

private JPAApi jpaApi;
@Inject
public TestingReportsDep(JPAApi jpaApi) {
    this.jpaApi = jpaApi;
}
Object[] tempObj;

@Transactional
public void resolving_requests) {
    String id_column = "id", city_column = "city", streetname_column ="streetname", housenumber_column = "housenumber"; //Parameters
    String request="SELECT "+id_column+","+streetname_column+" FROM address;";
    jpaApi.withTransaction(entityManager -> {
        Query query = entityManager.createNativeQuery(request);
        int ResultsAmount = query.getResultList().size();
        List Result = query.getResultList();
        System.out.print("\n\n\nNew super query by Bogdan:\n");

        for(int i=0; i< ResultsAmount; i++){
            tempObj = (Object[]) Result.get(i);

            System.out.print(tempObj[0]+" "+tempObj[1]+"\n");
        }
        return null;
    });
 }
}
 类似资料:
  • 问题内容: 我有一个HTTP客户端(目前)的Node.js应用程序。所以我在做: 这似乎是完成此任务的一种好方法。但是,我有些沮丧,我必须执行此步骤。这应该由一个公共库封装,但是我还没有看到它存在于node的库中,而且我不确定哪个标准的npm包可以完成它。有没有一种合理使用的更好的方法? url.format方法节省了构建自己的URL的工作。但理想情况下,请求的级别也应高于此级别。 问题答案: 检

  • 问题内容: 在swift 3中建议使用带参数的GET的哪种方法? 范例: 提前致谢 ! 问题答案: 示例如何使用请求。

  • 在下面的代码中,我有时会将设置为null。此时,它抛出错误为“could not extract resultset;SQL[n/a];嵌套异常为org.hibernate.exception.sqlgrammarexception:could not extract resultset” 即使为空,我如何获取数据。总有一天约会就要来了。这是怎么做的? null

  • 我正在使用Tomcat 8。在一种情况下,我需要处理来自外部源的外部请求,其中请求有一个参数,由分隔。 请求如下所示: 在这种情况下,我得到以下错误。 编辑1 它适用于ApacheTomcat 8.0.30,但不适用于Tomcat 8.5

  • 我正在使用FastAPI来提供一些ML模型,并且我有一个使用Python 模块的基本UI。 我的服务之一是通过POST请求获得图像,它就像一个魅力。 服务器端 {BASE_URI}/docs提供的卷曲 客户端使用Python请求 一旦我想添加额外的参数,它就变得令人毛骨悚然。例如: 服务器端 curl -- 由 {BASE_URI}/docs 给出 在那之前,一切正常。一旦我想使用Python<c

  • 问题内容: 使用Hibernate时,有什么方法可以在命名查询中指定可选参数(例如,从表单提供搜索参数而并非所有参数都是必需的)?我正在使用本机SQL查询,但该问题可能也适用于命名HQL查询。 我很确定对此的答案是“否”,但是我还没有在文档中找到确切的答案。 问题答案: AFAIK,没有这样的事情,因此您必须为此编写一个动态查询。也许看一下以前的答案,该答案显示了如何在HQL中执行此操作(您可以将