-1
안녕하세요. 잠금 기능을 사용하지 않으려면 일괄 적으로 테이블에서 수백만 행을 삭제하고 싶습니다. 코드 아래에 노력하고 있지만 모든 행을 삭제합니다. "clazz.getSimpleName를();" 한계가있는 표에서 행을 삭제합니다.
Session session;
try {
session = dao.getHibernateTemplate().getSessionFactory().getCurrentSession();
} catch (HibernateException e) {
session = dao.getHibernateTemplate().getSessionFactory().openSession();
}
String sql = "delete from "+clazz.getSimpleName();
session.createQuery(sql).setFetchSize(limit).executeUpdate();
dao.getHibernateTemplate().flush();
내가 고려하고
그래, "tablename 제한에서 100 삭제"시도했지만 java.lang.IllegalArgumentException 나를 준다 : 통과 할 노드 null이 될 수 없다! org.hibernate.hql.ast.util.NodeTraverser.traverseDepthFirst에서 \t (NodeTraverser.java:63) org.hibernate.hql.ast.QueryTranslatorImpl.parse에서 \t (QueryTranslatorImpl.java:280) org.hibernate에서 \t .hql.ast.QueryTranslatorImpl.doCompile (QueryTranslatorImpl.java:182) – plzdontkillme
setFetchsize (제한)을 피하십시오. 이 메소드는 가져올 행 수를 알려주지 만, 사용자가 가져올 수없는 행을 삭제하려고 시도하는 경우에 사용됩니다. – Moni
감사합니다 Moni 그 부분을 제거했지만 삭제할 행 수를 지정할 수있는 방법이 있습니까? – plzdontkillme