1. 程式人生 > >hql 和sql 的區別,解決hql 巢狀的問題

hql 和sql 的區別,解決hql 巢狀的問題

hql是面向物件的,而sql是面向表的。

巢狀查詢即 select * from (select * from..)

hql不支援,會報錯

如果不需要查詢結果和po物件的屬性做對應,只是需要結果,則可以直接用createSQLQuery代替createQuery,這樣可以返回一個物件陣列

session = HibernateUtil.getSessionFactory().getCurrentSession();
Transaction tx = session.beginTransaction();
tx.begin();
Query pm = session.createSQLQuery(querySql.toString());

list = pm.list();
tx.commit();

hibernate中直接使用sql update 的方式同理

Query query= session.createSQLQuery(sql); 
query.executeUpdate();
 
這樣就可以用hibernate執行sql語句了   沒有任何障礙。
我們用hql就是利用它的簡單 便捷 如果為了利用它我們花更多的精力去轉sql語句豈不是自找麻煩嗎? hibernate的工作設計人員為我們考慮了這一點,所以我們就得以用最簡單的方式執行sql了~~