我在Oracle数据库中有一个表。
我想知道如何删除它的行,或者如何使用Hibernate 纯粹删除表,但不是通过更改相应的映射类。我的意思是,我想在主Java方法中执行映射类。
要读取数据,我总是使用Hibernate的本机SQL查询。
要编写数据,我使用session.save
但是如何从表中删除数据或删除表呢?
我查看了Hibernate文档,但解决方案总是涉及通过添加注释来更改映射的类代码......
我想要一个像我用来读写数据的解决方案:
session.createSQLQuery("...");
或者
session.save(...);
有这样的解决方案吗?
答案 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();