项目开发中,使用的hibernate oracle删除数据时使用以下代码不能删除数据
public void delPerson(String name) {
Session session = HibernateUtil.currentSession();
String hql = "delete from Person where name= :name";
Query query = session.createQuery(hql);
query.setParameter("name", name);
return query.executeUpdate();
}
改为类似下面的写法就行了
public void delPerson(Date createDate ) {
Session session = HibernateUtil.currentSession();
String time = DateUtil.convertDate2Str(createDate, "yyyy-MM-dd");
String sql = "select id from person where to_char(trunc(tax_date, 'dd'), 'yyyy-mm-dd') = :taxDate";
SQLQuery query = session.createSQLQuery(sql);
query.setParameter("taxDate", time);
List list = query.list();
Iterator iterator = list.iterator();
List<String> idList = new ArrayList<String>();
while (iterator.hasNext()) {
String obj = (String) iterator.next();
idList.add(obj);
}
Person taxBean = new Person();
for(String id : idList) {
taxBean.setId(id);
session.delete(taxBean);
session.flush();//此处相当于提交一次,否则循环执行完后只会删除一条数据
}
}
java学习交流群:513650703