我正在尝试删除表格中的所有行' user_role'用hibernate查询。但每次我都会遇到错误。有人可以帮我解决。
DaoImpl
@Override
public void deleteAll() {
session.getCurrentSession().delete(/*delete all query*/);
}
模型类
@Entity @Table(name="user_role")
public class User_Role {
@Id @Column @GeneratedValue(strategy=GenerationType.AUTO)
private int id;
@Column(name="role_name")
private String name;
//setter and getter
}
答案 0 :(得分:10)
试试这个:
sessionFactory.getCurrentSession().createQuery("delete from User_Role").executeUpdate();
答案 1 :(得分:0)
您可以使用此方法一次删除一个类的所有实例。如果你有很多记录,它会慢一些,但是,你没有复制表名的文字字符串。
public static void removeAllInstances(final Class<?> clazz) {
SessionFactory sessionFactory = HibernateUtil.getSessionFactory();
Session session = sessionFactory.getCurrentSession();
session.beginTransaction();
final List<?> instances = session.createCriteria(clazz).list();
for (Object obj : instances) {
session.delete(obj);
}
session.getTransaction().commit();
}
用法:
removeAllInstances(User_Role.class);