读书人

Hibernate3中 truncate运行时错误的解

发布时间: 2012-09-14 23:00:48 作者: rapoo

Hibernate3中 truncate运行时异常的解决方案
在使用Hibernate3中,发现执回收表格(MySql表空间)时总是报错,具体如下:
我们回收一个表空间(删除表中所有数据,并回收空间),但Hibernate3中总是报错。这点上觉得Hibernate还真不如IbatiS稳定,这种常用的SQL方法居然都支持的不好。
代码如下:

try {tx = session.beginTransaction();session.createSQLQuery("truncate table user2").executeUpdate();tx.commit();} catch (Exception e) {tx.rollback();e.printStackTrace();} finally {session.close();}

这里顺便说一下为什么使用truncate而不用delete
truncate会删除表中所有的数据,包括序列,同时回收表空间。当再插入数据时,序列号是1.
delete仅仅是删除数据,不删除序列,不回收空间。当再插入数据时,序列号是最后的序列号+1。

读书人网 >软件架构设计

热点推荐