我正在使用Dropwizard和Hibernate。
我收到了这个JPQL查询:
String queryString = "select u.portalUserId, p.personName, p.personMobile, p.personEmail, u.portalUsertype, p.personNotes "
+ "FROM Persons p, PortalUsers u WHERE p.personId = u.portalUserPersonId";
这是两个实体之间的简单连接,可以获得有关用户的一些信息。
我运行它的方式是这样的:
Query q = sessionFactory.getCurrentSession().createQuery(queryString);
List<PortalUserBasicUserInfo> l = q.list();
PortalUserBasicUserInfo是一个包含select子句的所有字段的类。
当我运行查询时,我只获取每个字段的值但没有字段名称。例如,我收到的结果是:
"[[2,\"\",null,null,\"MANAGER\",null]]"
这不起作用,因为我想返回带有字段名称的JSON结果。如何添加字段名称,以便正在阅读json的人可以正确解析它?
答案 0 :(得分:0)
我最终做的是更改为查询以返回我需要的类型:
String queryString = "select new com.myPackage.Users.PortalUserBasicUserInfo(u.portalUserId ,p.personName, p.personMobile, p.personEmail, u.portalUserStatus, u.portalUsertype, p.personNotes) "
+ "FROM Persons p, PortalUsers u WHERE p.personId = u.portalUserPersonId";
注意new com.myPackage.Users.PortalUserBasicUserInfo
。这创建了一个我预期的正确类型的列表。