gpt4 book ai didi

java - 来自 Hibernate 的 Spring MVC View 的数据

转载 作者:行者123 更新时间:2023-11-29 14:05:45 24 4
gpt4 key购买 nike

我在从 hibernate 中的查询中获取信息时遇到问题。在我的dao类中,有一个这样的函数。

@SuppressWarnings("unchecked")
public List<String> getOcurrencesPerMonth(){
List<String> dataOcurrences = (List<String>) getHibernateTemplate().execute (new HibernateCallback() {
public Object doInHibernate(Session session) {
Query query = session.createQuery("select concat(year(ror.created),'/',month(ror.created)), dt.name, count(distinct ror.id) from RawOccurrenceRecord ror, DataProvider dt" +
" where ror.dataProviderId = dt.id" +
" group by month(ror.created),ror.dataProviderId");
return query.list();
}
});

ArrayList<String> dataO = new ArrayList<String>();

Iterator<String> iterator = dataOcurrences.iterator();
while (iterator.hasNext()) {
dataO.add(iterator.next());
}

return dataO;
}

我将列表传递给 View ,并在jsp中使用c:forEach来查看结果,但我只有像Ljava.lang.Object;@1659f66这样的结果

我在 MySQL 中的查询是

SELECT CONCAT(YEAR(raw_occurrence_record.created),'/',MONTH(raw_occurrence_record.created)), data_provider.name, COUNT(DISTINCT raw_occurrence_record.id) FROM raw_occurrence_record, data_provider WHERE raw_occurrence_record.data_provider_id = data_provider.id GROUP BY month(raw_occurrence_record.created), raw_occurrence_record.data_provider_id;

结果就像这样

2012/12 | POL | 15
2013/1 | JKL | 45
2013/1 | GTK | 30

如何在我的 View 中获取查询中每一列的数据?

最佳答案

那是因为您的查询没有返回 List<String> ,它返回 List<Object[]>[Ljava.lang.Object;@65690726是当您在数组上调用 toString() 时得到的结果,当您尝试打印它时,您的 JSP 最终会执行此操作。

您想要这样的东西(尽管从架构上来说,人们通常不会在名为 *-DAO 的类中这样做!)

for (Object[] result: dataOccurences) {
data0.add(result[0].toString() + "|" + result[1].toString() + "|" + result[2].toString());
}

关于java - 来自 Hibernate 的 Spring MVC View 的数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14384561/

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