【发布时间】:2011-04-12 10:42:16
【问题描述】:
我在 Hibernate 互联网上看到了几个使用 transaction.commit() 进行选择语句的示例。下面是示例代码。
public static List<?> list(Class<?> className,int start,int limit,SearchFilter[] searchFilter){
Session session = HibernateUtil.getSessionFactory().openSession();
Transaction transaction = null;
try {
transaction = session.beginTransaction();
Criteria criteria = session.createCriteria(className);
criteria.setFirstResult(start);
criteria.setMaxResults(limit);
for(SearchFilter sf : searchFilter){
String[] values = sf.getValue();
if(values != null){
if(values.length == 1) {
criteria.add(Restrictions.eq(sf.getField(), values[0]));
}else{
criteria.add(Restrictions.in(sf.getField(), values));
}
}
}
List<?> Objects = criteria.list();
transaction.commit();
return Objects;
}catch (Exception e) {
transaction.rollback();
e.printStackTrace();
}finally{
session.close();
}
return null;
}
为什么我们要为 select 语句开始和提交事务?
【问题讨论】: