2016-09-18 65 views
1

我正在使用Dropwizard和Hibernate。JPQL查詢返回沒有字段名稱的對象

我得到這個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"; 

這是2個實體之間的簡單連接,並獲得用戶的一些信息。

我運行它就是這樣的方式:

Query q = sessionFactory.getCurrentSession().createQuery(queryString); 
List<PortalUserBasicUserInfo> l = q.list(); 

PortalUserBasicUserInfo是具有SELECT子句的所有字段的類。

當我運行查詢時,我只得到每個字段的值,但沒有字段名稱。例如,我收到的結果是:

"[[2,\"\",null,null,\"MANAGER\",null]]" 

這不起作用,因爲我想返回帶有字段名稱的JSON結果。如何添加字段名稱,以便閱讀json的人可以正確解析它?

+0

爲什麼不向列標題的JSON添加新條目? –

+0

你是什麼意思? –

+0

通過爲標題添加條目來修改您的JSON。 –

回答

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。這已經創建了我預期的正確類型的列表。