Hiberante truncate table 截断表sql操作
方法一:(推荐):
session.createSQLQuery(truncateTableSql).executeUpdate();
方法二(官方废弃了):
session.connection().createStatement().execute(truncateTableSql);
具体使用:
public void truncateTable() {
getHibernateTemplate().execute(new HibernateCallback() {
@SuppressWarnings("deprecation")
@Override
public Object doInHibernate(Session session) throws HibernateException,SQLException {
String truncateTableSql = "truncate table "+TableEntityPersister.getTableName(MaterialSerialNumber.class.getName());
//session.connection().createStatement().execute(truncateTableSql);
session.createSQLQuery(truncateTableSql).executeUpdate();
return null;
}
});
}
在这里再顺便唠叨一下hibernate查询sql语句方式:
@SuppressWarnings({ "unchecked", "rawtypes" })
@Override
public List<DocumentSuppCertificate> getByMainId(Long id) {
final Long id_ = id;
return (List<DocumentSuppCertificate>)getHibernateTemplate().execute(new HibernateCallback() {
@Override
public Object doInHibernate(Session session) throws HibernateException,SQLException {
return session.createSQLQuery("select * from lc_document_suppcertificate where documentSupplier_id = "+id_).addEntity(DocumentSuppCertificate.class).setCacheable(false).list();
}
});
}
解释一下
addEntity方法:就是把表映射成对应的实体
setCacheable方法:是否每次从缓存中那数据,如果想每次都看到最新的数据,就不要设置这个为true了,要不然老看到上一次的旧数据
list方法:就是以一个list方式返回