你好,我是HQL新手,我堅持在HQL中查詢。問題在HQL中使用求和方法的不合適結果
的
結構我有兩個類項目和一個(項目)的收入處於休眠很多(收入)的關係。
有一個特定項目的收入是如此之多。
我想幹什麼?
我想檢索所有項目,每個項目都帶有所有收入的總和。 假設有兩個項目有3000個(項目一的各種不同收入的總和)和4000個(項目二的各種不同收入的總和)總收入量,我想將它們作爲一個對象列表檢索。這個對象列表應該包含項目1和2以及它們各自的總金額。
我在做什麼
public java.util.List<Object[]> retrieveFromTo(int firstResult, int maxResult) {
session = sessionFactory.openSession();
Query query = session.createQuery(
"select p.projectId, "
+ "p.projectDateOfCommencement, "
+ "p.projectName, "
+ "pi.investorName, "
+ "sum(bc.incomeAmount), "
+ "sum(ab.expenseAmount), "
+ "sum(bc.incomeAmount)-sum(ab.expenseAmount), "
+ "p.projectStatus, "
+ "p.projectCompletitionDate "
+ "from Project as p, Investor as i "
+ "left outer join p.projectExpenses as ab "
+ "left outer join p.projectIncome as bc "
+ "left outer join p.projectInvestor as pi "
+ "group by p.projectId, pi.investorId "
+ "order by p.projectId desc ")
.setFirstResult(firstResult)
.setMaxResults(maxResult);
List<Object[]> projects = query.list();
session.close();
return projects;
}
結果查詢的是產不恰當的結果。
假設有兩個項目,如果兩個項目的總收入都假設爲3000,那麼這個查詢檢索項目總收入爲3000(正確)的項目列表,但第二個項目的總收入只是第一個意思是6000,而應該是3000。
請有人讓我知道,究竟我想要添加或刪除從我的查詢來獲得我想要的輸出。 在此先感謝!
你能舉個例子嗎? –
兩個階段的項目和收入,並有一個(項目)對他們之間的許多(收入)關係。我想檢索一個項目列表,其中每個項目應該包含所有收入的總和。我寫了以下給出的查詢,但它不能正常工作 – tinku
會更有幫助,如果您添加到您的問題的一些示例與數據,執行查詢和結果 – Paizo