• Post Reply Bookmark Topic Watch Topic
  • New Topic
programming forums Java Mobile Certification Databases Caching Books Engineering Micro Controllers OS Languages Paradigms IDEs Build Tools Frameworks Application Servers Open Source This Site Careers Other Pie Elite all forums
this forum made possible by our volunteer staff, including ...
Marshals:
  • Campbell Ritchie
  • Tim Cooke
  • Liutauras Vilda
  • Jeanne Boyarsky
  • paul wheaton
Sheriffs:
  • Ron McLeod
  • Devaka Cooray
  • Henry Wong
Saloon Keepers:
  • Tim Holloway
  • Stephan van Hulst
  • Carey Brown
  • Tim Moores
  • Mikalai Zaikin
Bartenders:
  • Frits Walraven

SubQuery in Hibernate

 
Greenhorn
Posts: 2
  • Mark post as helpful
  • send pies
    Number of slices to send:
    Optional 'thank-you' note:
  • Quote
  • Report post to moderator
Hi!!!

There's problem in Hibernate.

I have three tables as :

Department(Dno,Dname)
Employee(Eno,Dno,Salary)
Project(Pno,Dno) i.e Here Dno represents The Department that controls that project.

Now I Want Output as :
Dname,sum(Salary),count(Project)

i.e. Total Salary paid to each Department and total number of projects controlled by each department.

i.e. Group by dno in Employee for Sum(Salary) and Group by dno in Project for count(*)
Then Join both results with Department to get desired results.


In Sql we write the Query as :

SELECT d.dname, a.s, b.c
FROM Department d,
(SELECT dno, sum(salary) s FROM Employee GROUP BY dno) a,
(SELECT dno, count(*) c FROM Project GROUP BY dno) b
WHERE d.dno=a.dno and a.dno=b.dno


I get the correct result from the above query.

Now Problem is how to write the same query in Hibernate.

DOES HIBERNATE SUPPORTS SUBQUERY IN FROM CLAUSE AS USED IN ABOVE SQL.


In java we have three classes as :

Department(dno,dname)
Employee(eno,salary and Object of Department dept)
Project(pno and Object of Department dept)


In hibernate I have write a query as :

SELECT d.dname,a.s,b.c
FROM Department d, (SELECT e.dept.dname dn,sum(salary) s FROM Employee e group by dn) a,
(SELECT p.dept.dname dnm, count(*) s FROM Project p group by dnm) b
Where d.dname = a.dn and a.dn = b.dnm

But Hibernate gives error in From clause where "(" starts.
I think Hibernate does not support Subquery in From clause.

Individually Employee group by and Project group by is alright in Hibernate.

Help me to Solve above Problem

Bye!!!
 
Ranch Hand
Posts: 166
  • Mark post as helpful
  • send pies
    Number of slices to send:
    Optional 'thank-you' note:
  • Quote
  • Report post to moderator
Review using "Criteria" objects in your query. This is how I got around doing a subquery across tables.
 
I have a knack for fixing things like this ... um ... sorry ... here is a consilitory tiny ad:
Gift giving made easy with the permaculture playing cards
https://coderanch.com/t/777758/Gift-giving-easy-permaculture-playing
reply
    Bookmark Topic Watch Topic
  • New Topic