delete方法(Hibernate)

@Test
public void DeleteStreetWithWhere(){
Configuration config=new Configuration().configure();
SessionFactory sf=config.buildSessionFactory();
Session session=sf.openSession();
Transaction tr=session.beginTransaction();
String hql="from Street where id=1 ";
try {
session.delete(hql);

        tr.commit();
        System.out.println("street delete sucessful!");
    } catch (Exception e) {
        e.printStackTrace();
        tr.rollback();
        System.out.println("street delete failued!");
    }finally{
        session.close();
    }
}

为什么String hql="from Street where id=1 "; 这样不行,但看了网上都是这么做的呀,运行报如下错误:

org.hibernate.MappingException: Unknown entity: java.lang.String

你用
[code="java"]session.createQuery("delete from Street where id=1").executeUpdate();[/code]

应该是session.delete(obj);
obj这个参数应该是你的对象,是直接删除对象的。而不是像你那样传的hql。

Street类的Mapping文件Id类型问题把?你在看看。。。
delete from Street s where s.id= '1'; 试试

没找到有这样参数的delete方法呢

我晕,你把参数搞错了哦,要传的是Object,你直接传String进去是没法执行的,你要传的是需要删除的那个对象。