aspose file tools*
The moose likes Other Application Frameworks and the fly likes createSQLQuery in Spring Big Moose Saloon
  Search | Java FAQ | Recent Topics | Flagged Topics | Hot Topics | Zero Replies
Register / Login
JavaRanch » Java Forums » Frameworks » Other Application Frameworks
Bookmark "createSQLQuery in Spring" Watch "createSQLQuery in Spring" New topic
Author

createSQLQuery in Spring

asli kilic
Greenhorn

Joined: Sep 15, 2008
Posts: 3
Hi,

I'm using hibernate + spring
i have a query like "select * from (select..." but i saw that "select" is not supported after "from".
Then i decide to use native sql (createSQLQuery)

So i found some examples like
SessionFactory sessionFactory = new Configuration().configure().buildSessionFactory();
session.createSQLQuery(sql.toString()).list();

Congifuration() above tries to find hibernate configuration file to get sessionfactory but i have not that file in spring, however i have applicationContext.xml for configuration.

How can i get the session to create SQL Query? Please help me...Thank you
Mark Spritzler
ranger
Sheriff

Joined: Feb 05, 2001
Posts: 17249
    
    6

OK, so I don't understand your first comment about the "SELECT" but if you are using HQL, you do not need the select portion, if it was going to be "Select * from..."

Anyway, you have your Hibernate Session Factory defined in your Spring configuration. The next step is to inject the Session Factory into you DAO/Repository class. So you can either do that with a constructor or a settter. Now in your code you just call sessionFactory.getCurrentSession() to get the session and now you are good to go. Do not use the new Configuration().configure().buildSessionFactory(); you do not need to do that if you are using Spring and Spring is creating the SessionFactory for you.

Mark


Perfect World Programming, LLC - Two Laptop Bag - Tube Organizer
How to Ask Questions the Smart Way FAQ
asli kilic
Greenhorn

Joined: Sep 15, 2008
Posts: 3
hi Mark thank you for your answer
my sql query is
select max(P.notu)-1 from (select sum(ky.notu) as notu from Yorum ky group by ky.yorumPK.kitapSiraNo) P

actually, i wanted to get max of sums.

Could you give an example about how to inject the Session Factory into my DAO/Repository class via constructor please? I can't see any configuration about session factory in applicationContext.xml (configuration file of Spring)
[ September 15, 2008: Message edited by: asli kilic ]
asli kilic
Greenhorn

Joined: Sep 15, 2008
Posts: 3
I get session but i have a new problem
when i run the query i take the exception above
what is my mistake?

"Caused by: org.hibernate.exception.SQLGrammarException: could not execute query"

In my DAO



part of applicationContext.xml (forum does not allow text contains url , i can not paste the header here)
Mark Spritzler
ranger
Sheriff

Joined: Feb 05, 2001
Posts: 17249
    
    6



And for the applicationConfig.xml




There you go a sessionFactory injected via a constructor. Now you already have the bean definition for the sessionFactory and all the others, I am not going to repeat that stuff.

Mark
 
I agree. Here's the link: http://aspose.com/file-tools
 
subject: createSQLQuery in Spring
 
Similar Threads
Sybase stored proc error
Connecting two different databases using Hibernate
questions about Hibernate
Sequence Problem
HibernateException: No Hibernate Session bound to thread