如何在hibernate中编写HQL查询以删除所有行而不删除表?

时间:2015-03-18 06:11:57

标签: java hibernate

如何在hibernate中编写HQL查询以删除所有行而不删除表? 和
如何使用HQL查询删除数据库中的所有表?

1 个答案:

答案 0 :(得分:1)

假设您的表名为your_table,对应EntityYour_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;