2013-06-25 157 views
1

我必須HQL語句插入模型對象值...如何使用HQL INSERT語句

insert into Item(itemName, itemId) select i.itemName,i.itemId from Item i where i.itemId=?,i.itemName=? 

這個我特林插入我的模型對象的值,但沒有得到結果.... 幫助將不勝感激..

這裏是完整的代碼...

public String Additem(Item i) { 
    Session session=HibernateSessionFactory.getSession(); 
    Transaction transaction=session.beginTransaction(); 
    System.out.println(i.getItemId()); 
     insert into Item(itemName, itemId) select i.itemName,i.itemId from Item i where i.itemId=?,i.itemName=?; 


Query query= session.createQuery(hq).setString(0,i.getItemId()).setStrig(1,i.getItemName()); 
    query.executeUpdate(); 
    transaction.commit(); 
    session.flush(); 
    session.close();    

    return "success"; 
} 

回答

0

我試着與您的查詢有了一些變化是

insert into Item(itemName, itemId) select i.itemName,i.itemId from Item i where i.itemId=? and i.itemName=? 

和您發佈的查詢是

insert into Item(itemName, itemId) select i.itemName,i.itemId from Item i where i.itemId=?,i.itemName=? 

我只跟01​​關鍵字替換,和它的工作。

+0

感謝您的快速response..but HQL插入查詢給予通過從其他數據庫表中選擇將記錄插入到一​​個數據庫表....我現在發現這個權利...所以這種情況是不可能的 –

+0

是它就是這樣。在這裏,你的情況下,它會插入重複行與您現有的'Item類table'行滿足您的條件設置中選擇的元組,所以這種情況也是可能的,因爲我完成它,然後再張貼雁在這裏。 – Kartik73

+0

感謝您的幫助,我得到它.. –