使用条件查询删除

时间:2009-12-28 21:04:34

标签: nhibernate criteria

可以使用条件查询删除吗?

我想这样做:

删除博彩公司 WHERE userID = @userID

如何使用标准执行此操作?

2 个答案:

答案 0 :(得分:4)

我不确定除了使用Criteria查询之外你还可以做任何其他事情,尽管有一个使用Criteria删除已经发布在StackOverflow上的示例:How can one delete NHibernate objects using a criteria?

我认为你只想删除而不必返回数据。您可以尝试使用HQL: http://nhibernate.sourceforge.net/NHibernateEg/NHibernateEg.Tutorial1A.html#NHibernateEg.Tutorial1A-CRUD.Delete

答案 1 :(得分:-1)

创建一个java类:

以下是我们的java文件(DeleteHQLExample.java)的代码,我们将使用查询delete from Insurance insurance where id = 2

从保险表中删除一行

以下是删除查询的代码:DeleteHQLExample.java

package roseindia.tutorial.hibernate;

import org.hibernate.Query;
import org.hibernate.Session;
import org.hibernate.SessionFactory;
import org.hibernate.Transaction;
import org.hibernate.cfg.Configuration;

public class DeleteHQLExample {
  /**
 * @author ashish baviskar
 */
  public static void main(String[] args) {
    // TODO Auto-generated method stub  
    Session sess = null;
    try {
      SessionFactory fact = new 
Configuration().configure().buildSessionFactory();
      sess = fact.openSession();
      String hql = "delete from 
Insurance insurance where id = 2";
      Query query = sess.createQuery(hql);
      int row = query.executeUpdate();
      if (row == 0){
        System.out.println("Doesn'
t deleted any row!");
      }
      else{
        System.out.println("Deleted
 Row: " + row);
      }
      sess.close();
    }
    catch(Exception e){
      System.out.println(e.getMessage());
    }
  }
}