有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

java Hibernate本机SQLQuery提取值

如何从本机SQLQuery中提取多个值

SQLQuery query = session.createSQLQuery("SELECT param1, param2 from table_name where ..);

当我使用query.list()query.uniqueResult时,它总是返回Object\Object的列表,即使我添加了标量,也不能将其转换为任何内容。 提取单个值时没有问题:

session.createSQLQuery("SELECT param1 from table_name where ..);
Long result = (Long)query.uniqueResult();

但是如何提取2个或更多的值


共 (1) 个答案

  1. # 1 楼答案

    根据SQLQuery.list() API

    Return the query results as a List. If the query contains multiple results pre row, the results are returned in an instance of Object[]

    示例代码:

    SQLQuery query = session.createSQLQuery("SELECT param1, param2 from table_name where ..);
    List<Object[]> list = (List<Object[]>)query.list();//Object[] objs = (Object[])query.uniqueResult()
    for (Iterator<Object[]> iterator = list.iterator(); iterator.hasNext();) {
        Object[] e = iterator.next();
        String param1 = (String)e[0];//case object type to another by youself...
    }
    

    如果您的程序将标量添加到SQLQueryHibernate可以像您预期的那样返回匹配对象类型