public void truncateTableByName(String tableName) {
Map<String, Object> params = new HashMap<String, Object>();
String sql = " truncate table :tableName";
params.put("tableName", tableName);
Query q = this.createSQLQuery(sql, params);
q.executeUpdate();
}
这么写报org.hibernate.exception.SQLGrammarException: could not execute native bulk manipulation query错误
解决方法是不使用params.put设置参数,改为
public void truncateTableByName(String tableName) {
Map<String, Object> params = new HashMap<String, Object>();
String sql = " truncate table " + tableName;
Query q = this.createSQLQuery(sql, params);
q.executeUpdate();
}
直接在sql语句后面拼凑参数
注:这里传入的参数为实际的表名,createQuery和createSQLQuery的区别是前者是对类进行操作,后者是对实际的表名进行操作