2013-03-25 118 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中执行查询。