如何使用Hibernate动态删除表的行或删除表?

时间:2015-08-19 12:01:54

标签: java sql oracle hibernate hql

我在Oracle数据库中有一个表。

我想知道如何删除它的行,或者如何使用Hibernate 纯粹删除表,但不是通过更改相应的映射类。我的意思是,我想在主Java方法中执行映射类。

要读取数据,我总是使用Hibernate的本机SQL查询。

要编写数据,我使用session.save

但是如何从表中删除数据或删除表呢?

我查看了Hibernate文档,但解决方案总是涉及通过添加注释来更改映射的类代码......

我想要一个像我用来读写数据的解决方案:

session.createSQLQuery("...");

或者

session.save(...);

有这样的解决方案吗?

2 个答案:

答案 0 :(得分:0)

我在另一个Stackoverflow问题中找到了答案:

Query to delete all rows in a table hibernate

如果我想从中删除行的表名为MyTable,那么答案是:

在HQL中:

session.createQuery("delete from MyTable").executeUpdate();

在本机SQL中:

session.createSQLQuery("delete from MyTable").executeUpdate();

在发布此问题之前,我应该在stackoverflow中查看更长时间,对不起。

答案 1 :(得分:0)

HQL delete from Xyz会有所帮助,因为没有where子句会影响每一行:

EntityManager em = // .. get EntityManager
em.getTransaction().begin();
em.createQuery("delete from MyTable").executeUpdate();
em.getTransaction().commit();