如何在hibernate中编写HQL查询以删除所有行而不删除表?
和
如何使用HQL查询删除数据库中的所有表?
答案 0 :(得分:1)
假设您的表名为your_table
,对应Entity
类Your_Table
,则以下内容应该有效:
@Entity @Table(name="your_table")
public class Your_Table {
@Id @Column @GeneratedValue(strategy=GenerationType.AUTO)
private int id;
// columns go here
// getters and setters
}
sessionFactory.getCurrentSession().createQuery("delete from Your_Table").executeUpdate();
如果要删除数据库中的所有表,则必须使用原始SQL命令。 HQL不是用于创建/删除表,而是用于操作从表创建的Entity
个对象。如果你真的想要删除数据库中的所有表,你可以删除数据库本身,然后使用原始SQL重新创建它:
DROP DATABASE your_database;
CREATE DATABASE your_database;