[英]JPQL Query returns object with no field names
我正在使用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的人可以正確解析它?
我最終做的是更改為查詢以返回我需要的類型:
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
。 這創建了一個我預期的正確類型的列表。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.