hibernate使用truncate語句報錯
阿新 • • 發佈:2019-02-18
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的區別是前者是對類進行操作,後者是對實際的表名進行操作