如何获取查询中的数据(hql的搜索结果)?

How to get the data in query(search result of hql)?

我是使用新手jdbc,遇到了一些问题。

我用hql搜索MySQL中的数据,结果是Query类型。我不知道如何从 "Query" 获取数据。这是我的代码:

final String hql = "select app.appkey,app.type from " + getClassName() +
 "app where app.appkey<>'no-appkey' group by app.type";
Query query = getEntityManager().createQuery(hql);

非常感谢。

您必须执行以下操作:

final String hql = "select app.appkey,app.type from " + getClassName() + " app where app.appkey<>'no-appkey' group by app.type";
Query query = getEntityManager().createQuery(hql);
query.list(); //or query.getSingleResult();

query.list() 将给出结果列表。

query.getSingleResult()会给你一个对象。

你可以查看this.

如果您需要一个结果列表,那么:

List<Object[]> results = query.getResultList();

如果您希望得到一个结果:

Object[] result = query.getSingleResult(); // if more than one result was found, this method will throw a NonUniqueResultException

如果将列信息存储在Object数组的某个位置。示例:

String appKey = (String) result[0];
String appType = (String) result[1];

但使用对象数组并不好。尝试使用 Dto,如解释的那样 here