2013-03-25 163 views
0

我想通過使用本機SQL代碼來使用HQLL簡單地插入到數據庫中。插入Sql查詢不與HQL工作

它沒有給出任何錯誤,它只是不起作用。任何幫助表示讚賞。

謝謝。

public void AddMedicament(Medicament medicament) { 
    System.out.println(medicament.getName()); 
    // open a database connection 
    Session session = FarmacieHibernateUtil.getSessionFactory().openSession(); 
    Transaction transaction = session.beginTransaction(); 
    // prepare SQL insert command 
    session.createSQLQuery("insert into Medicament(name) values('test')"); 

    // close the database connection 
    session.close(); 
} 

回答

2

您需要關閉會話之前調用

session.executeUpdate() 
transaction.commit(); 

+2

也transaction.commit(); – Adi 2013-03-25 19:11:54

+0

謝謝!我忘了那些。 – Mythul 2013-03-25 19:16:13

2

我不熟悉Hibernate,但我沒有看到你運行你的命令。您只需創建查詢並關閉會話 我認爲您需要一些語句來執行它。

2

如果使用createSQLQuery此拋出一個本地的SQL指令

你的目標表名是藥劑嗎?

2

session.saveOrUpdate(藥劑); tx.commit(); 然後它會插入,如果你不設置主鍵,如果你在域對象中設置PK,那麼它將被更新。

如果您使用的是Spring ORM,則不需要在hibernate中執行查詢。