簡體   English   中英

JPQL Query返回沒有字段名稱的對象

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM