1. 程式人生 > >hibernate使用truncate語句報錯

hibernate使用truncate語句報錯

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的區別是前者是對類進行操作,後者是對實際的表名進行操作