【问题标题】:How to write HQL query in hibernate to delete all rows without deleting table?如何在休眠中编写 HQL 查询以删除所有行而不删除表?
【发布时间】:2015-03-18 06:11:56
【问题描述】:

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

如何使用 HQL 查询删除数据库中的所有表?

【问题讨论】:

    标签: java hibernate


    【解决方案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;
    

    【讨论】:

      猜你喜欢
      • 2014-09-25
      • 2011-12-05
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2015-10-01
      • 1970-01-01
      相关资源
      最近更新 更多