2011-12-23 6 views
1

実際には、mySqlデータベースで非常にうまく動作する1つのSQLクエリがありました。しかし、私の問題は、クエリをhibernatetemplateクエリに書きたいということです。SQLクエリからhibernateテンプレートクエリを書くには?

私のSQLクエリは

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

であり、私はHibernateのテンプレートで実行されるまでそれをしたいです。

これをHibernateTemplateクエリに変換するにはどうすればよいですか?

+1

ネクタイ?彼らの間の関係は何ですか? HQLはテーブルではなくエンティティで動作します。マッピングを知らなければ、答えは不可能です。 http://docs.jboss.org/hibernate/core/3.6/reference/en-US/html_single/#queryhqlを読んだことがありますか? –

答えて

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クエリこの2つのテーブルがentiにマッピングされている方法

select S.stateName,C.countryName from State S,Country C where S.countryId=C.countryId; 
関連する問題