@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进去是没法执行的,你要传的是需要删除的那个对象。