我需要HQL查询Jasper Report
到select
子实体字段。
我在reoprt.jrxml中尝试了以下查询:
select c.fullname, p.description from Client c inner join c.Product p
但我得到了:
net.sf.jasperreports.engine.JRException:从bean:description检索字段值时出错。
我知道这个查询返回两个Objects
,但我不知道使用HQL 的select
子实体字段的正确方法
或者,我尝试将Product
字段放在Map
中,并在Jasper Report中使用这些参数,这是有效的,但这不是一个好的做法。
Map map = new HashMap();
manager.searchId(74).forEach(client -> {
map.put("description", client.getProduct().getDescription());
});
我应该使用哪个查询?
无法使用请求的结果类型为具有多个返回的查询创建类型化查询
消息已经表明,您有多个查询返回,即选择不能使用除Object[]
或Tuple
之外的结果类型的项目。
下面的代码有什么不同?您仍在返回List<Client>
。如果你想的话,你可以使用HQL功能返回地图列表,如下所示:
public List<Map<String, Object>> quotation() {
try (Session session = sessionFactory.openSession()) {
return session.createQuery("select new map(c.fullname as fullname, p.description as description) from Client as c inner join Product p where c.id=74", Map.class).getResultList();
}
}