0

使用時に問題がありますDELETE FROM myEntity

データベースですべてのエントリがなくなっているのを見ましたが、以前に存在したエントリを挿入しようとすると、削除する前のレコードがまだ残っています。

コードは次のとおりです。

static SessionFactory session = NewHibernateUtil.getSessionFactory();

public Session membukaSession(){
  return session.openSession();
}

public void clearRencanaPesan(){
    Session sess = this.membukaSession();
    Query query = sess.createQuery("delete from Rencanapesan");
    query.executeUpdate();
}

だから私は Truncate を使ってみました

そして、これはコードです:

public void clearRencanaPesan(){
    Session sess = this.membukaSession();
    Query query = sess.createQuery("TRUNCATE Table Rencanapesan");
    query.executeUpdate();
}

これは@@まったく機能していません。エントリは削除されていません。

これがエラーです

Jun 18, 2012 11:01:54 PM org.hibernate.hql.ast.ErrorCounter reportError SEVERE: line 1:1: unexpected token: TRUNCATE Exception in thread "AWT-EventQueue-0" java.lang.IllegalArgumentException: node to traverse cannot be null!

どうすればすべてのエントリを切り捨てたり削除したりできますか。
どうもありがとう。

4

1 に答える 1

2

提供されたクエリにエラーはありません。私の最初の推測は、クエリを使用して手動でセッションを削除した後、セッションが同期しなくなるということでした。Session.flush()は、セッションが基礎となるデータベースと同期されていることを確認します。

public void clearRencanaPesan(){
    Session sess = this.membukaSession();
    Query query = sess.createQuery("delete from Rencanapesan");
    query.executeUpdate();
}
// after you've made your changes and before closing the session.
sess.flush();
于 2012-06-18T22:45:44.797 に答える