求助,這樣查詢的hql語句應該怎么寫?我想通過UId查詢PCre 愛問知
top語法HQL不支持 變通的方法是 String HQL = "from Photo p where *='"+id+"' order by PCredit desc"; Query query = *Query(HQL); //設定起始位置 *stResult(0); //設定個數 *Results(2); //返回值是一個list,里面就是排序的前兩個對象 List resList = *(); 謝謝!。
sql語句和hql語句的區別
數據庫中hql與sql的區別:
1、sql 面向數據庫表查詢。
2、hql 面向對象查詢。
3、hql : from 后面跟的 類名+類對象 where 后 用 對象的屬性做條件。
4、sql: from 后面跟的是表名 where 后 用表中字段做條件查詢。
5、在Hibernate中使用查詢時,一般使用Hql查詢語句。
6、HQL(Hibernate Query Language),即Hibernate的查詢語言跟SQL非常相像。不過HQL與SQL的最根本的區別,就是它是面向對象的。
在Hibernate中使用查詢時,一般使用Hql查詢語句。
HQL(Hibernate Query Language),即Hibernate的查詢語言跟SQL非常相像。不過HQL與SQL的最根本的區別,就是它是面向對象的。
使用HQL時需要注意以下幾點:
大小寫敏感
因為HQL是面向對象的,而對象類的名稱和屬性都是大小寫敏感的,所以HQL是大小寫敏感的。
HQL語句:from Cat as cat where * > 1;與from Cat as cat where * > 1;是不一樣的,這點與SQL不同。
from子句
from Cat,該句返回Cat對象實例,開發人員也可以給其加上別名,eg. from Cat as cat,對于多表查詢的情況,可參考如下:
from Cat as cat, Dog as dog
其它方面都與SQL類似,在此不再贅述。
hibernate hql語句
你的HQL語句寫的有問題:
1、在select PetInfo from PetInfo as p order by (*ength+*e+*e)語句中,PetInfo不知道是什么,如果想查這個表的所有字段,那么前面的"select PetInfo "都可以不要;如果PetInfo是表中的某個字段名的話,可以用select new map(*o as PetInfo)
2、在order by (*ength+*e+*e)語句中,(*ength+*e+*e)不應該這樣寫,直接寫成:
order by *ength,*e,*e
所以整個HQL可以寫成:
from PetInfo as p order by *ength,*e,*e
或
select new map(*o as PetInfo) from PetInfo as p order by *ength,*e,*e
============================================
根據你后來的補充,你的HQL語句可以寫成如下方式:
select p.*,(*ength+*e+*e) as ord from PetInfo as p order by ord
hibernate HQL添加語句
那么多人說了半天都沒有解決樓主所提問題,實際上這個問題我已經說個多次了,現在讓我再一次來回復樓主的問題吧:
使用HQL語句來完成插入操作是不能實現的,不管你使用insert into。.values。還是insert into。..select。..都不行
原因:因為Hibernate的HQL語言是用于面向對象實現查詢功能的,然而在插入操作中是不會牽涉任何查詢動作的,所以HQL不能用于insert語句的插入操作,而select、update、delete語句都可以有可能的查詢實現,比如:
select語句時標準的查詢,這個就不用再說了
update語句:update 對象名 set。..where。
delete語句:delete from 對象名 where 。..
看到了沒有,update與delete牽涉到where的查詢篩選過程,這個過程是需要采用HQL來實現的,然而insert永遠牽涉不到查詢篩選過程,所以Hibernate沒有對插入做insert實現
大家注意回答問題的時候要針鋒相對,不要大非所問,比如樓主問能否采用HQL實現插入動作,你們就不要再要求樓主直接調save方法,也不要再說用本地SQL實現之類的,很明顯這些樓主都是知道的,不用你來提醒別人應該怎么做,不應該怎么做。
搞不懂為什么有那么多人說HQL可以,說著這句話的人請你們動動腦子,如果不想動腦子自己動手試一下也可以看出問題嘛,不要張開嘴就亂說一通,誤人子弟。
hql 查詢語句
假設你的類這樣寫:
class Student
{
public student ()
{}
public student (string name, id)
setName () {}
setId () {}
}
那么第一個QL結果是:
s = new student () ;
*e (name) ;
* (id) ;
第二個:
s = new student (name, id) ;
這是猜測的,你用的應該是Hibernate 3吧。
你可以試試。
求寫一條hibernate的hql語句
再套一層,select * from Tbobject where order_id in (。.你的一列數據)
HQL這樣寫
select * from TbOrder where *d in (select distinct *d from TbOrder t where *no=1)
-------------------------貌似不對奧----------
這樣,我以前SQL語句這樣寫過,
select distinct *d ,max(列1),max(列2),max(列3) from TbOrder t where *no=1