我使用hibernate,并且我有一些DAO用于某些需要。
在这个DAO中,我使用Batch。
connection.setAutoCommit(false);
for (int i = 0; i < callsList.size(); i++) {
Calls calls = callsList.get(i);
stmt.setInt(1, calls.getSecdur());
/////.......
stmt.addBatch();
if ((i+1) % 100 == 0){
stmt.executeBatch();
connection.commit();
}
}
stmt.executeBatch();
connection.commit();
有时在JPA DAO中我有这个错误could not inspect JDBC autocommit mode
我不明白为什么,以及如何解决它,但我认为问题是因为connection.setAutoCommit(false);
但错误捕获了JPA DAO
@Override
public List<E> getAll() {
List<E> list = null;
try {
Criteria criteria = getSession().createCriteria(entityClass);
list = (List<E>) criteria.list();
} catch (Exception ex) {
logger.log(Level.FINEST, "Exception getAll message = {1}.", ex.getMessage());
}
return list;
}