HQL查询Jasper Report所需的子实体类中的选择字段



我需要HQL查询Jasper Reportselect子实体字段。

我在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();
}
}

最新更新