2011-12-23 62 views
1

其實我有一個SQL查詢,運行非常好,與mySql數據庫。但是,我的問題是我想在hibernatetemplate查詢中編寫該查詢。如何從sql查詢中編寫hibernate模板查詢?

我的SQL查詢

SELECT * FROM task, dependency WHERE DEPENDENCY_From IN(10,11,12,13) 

,我希望它在休眠模板執行。

如何將其轉換爲HibernateTemplate查詢?

+1

如何這兩個表映射到ENTI領帶?它們之間的關聯是什麼? HQL在實體上工作,而不在表上工作。不知道他們的映射,這是不可能回答的。您是否閱讀過http://docs.jboss.org/hibernate/core/3.6/reference/en-US/html_single/#queryhql? – 2011-12-23 07:43:30

回答

6

如果你想使用HibernateTemplate查詢,那麼下面是hibernate查詢的例子,但在你的情況下,我們需要映射文件來查看實體是如何關聯的。希望下面的查詢將幫助你。

public List<Object[]> getCities(Integer stateId) { 
     List<Object[]> cityList = new ArrayList<Object[]>(); 
     String query = "select city.cityId,city.cityName from City city where city.state.stateId=?"; 
     Object[] queryParam = {stateId}; 
     cityList = getHibernateTemplate().find(query, queryParam); 
     return cityList; 
    } 

String query="from City"; 
List<City> cityList = getHibernateTemplate().find(query); 
1

HQL查詢

Object[] params = {cid,cid}; 

List list=getHibernateTemplate().find("select S.stateName,C.countryName from State S,Country C where C.countryId=? and S.countryId=?", params); 

SQL查詢

select S.stateName,C.countryName from State S,Country C where S.countryId=C.countryId;