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可以,說著這句話的人請你們動動腦子,如果不想動腦子自己動手試一下也可以看出問題嘛,不要張開嘴就亂說一通,誤人子弟。
用hibernate的HQL怎么寫一個插入語句
不是有映射文件嗎?
比如你的數據庫表為student
那么的你就應該有*配置文件和他的映射文件*,最后還應該有一個student表的映射類*
這3個文件.
然后你建一個實現類studentInsert
實現是
SessionFactory sf = new Configuration().configure().buildSessionFactory();
Session session = *ssion();
Transaction tx = *ransaction();
student st=new student();
*("0001");
*rName("Wang");
*sWord("123");
*(st);
*();
*();
就是這樣.
用hibernate的HQL怎么寫一個插入語句
不是有映射文件嗎?比如你的數據庫表為student那么的你就應該有*配置文件和他的映射文件*,最后還應該有一個student表的映射類*這3個文件.然后你建一個實現類studentInsert實現是SessionFactory sf = new Configuration().configure().buildSessionFactory(); Session session = *ssion(); Transaction tx = *ransaction(); student st=new student(); *("0001"); *rName("Wang"); *sWord("123"); *(st); *(); *();就是這樣。
.。
SQL語句:insert into 表1(值1,值2)select N1,N2 from 表2 用HQL語
如果查詢表2 結果符合插入條件 完全可以這樣寫:因為hql語句完全支持這種寫法:Hibernate hql: Only the INSERT INTO 。
SELECT 。 form is supported String hqlInsert = "insert into 表1(值1,值2) select b.N1, b.N2 from 表2 as b where 。
";int createdEntities = *Query(hqlInsert );//可看一下執行結果詳情可參考:http://**yehuiling/archive/2009/04/08/*頁尾處:An example HQL INSERT statement execution:。
hql 語句怎么新增一條
使用HQL語句來完成插入操作是不能實現的不管你使用insert into。
.values。還是insert into。
..select。..都不行原因: 因為Hibernate的HQL語言是用于面向對象實現查詢功能的,然而在插入操作中是不會牽涉任何查詢動作的,所以HQL不能用于insert語句的插入操作,而select、update、delete語句都可以有可能的查詢實現,比如:select語句時標準的查詢 select 。
from 對象名。.where。
update語句: update 對象名 set。..where。
。delete語句: delete from 對象名 where 。
..update與delete牽涉到where的查詢篩選過程,這個過程是需要采用HQL來實現的,然而insert永遠牽涉不到查詢篩選過程,所以Hibernate沒有對插入做insert實現。
hql 語句怎么新增一條
使用HQL語句來完成插入操作是不能實現的
不管你使用insert into。.values。還是insert into。..select。..都不行
原因:
因為Hibernate的HQL語言是用于面向對象實現查詢功能的,然而在插入操作中是不會牽涉任何查詢動作的,所以HQL不能用于insert語句的插入操作,而select、update、delete語句都可以有可能的查詢實現,比如:
select語句時標準的查詢
select 。 from 對象名。.where。
update語句:
update 對象名 set。..where。
delete語句:
delete from 對象名 where 。..
update與delete牽涉到where的查詢篩選過程,這個過程是需要采用HQL來實現的,然而insert永遠牽涉不到查詢篩選過程,所以Hibernate沒有對插入做insert實現