通过HibernateTemplate可以实现原生SQL查询,session销毁不必手动关闭
/*
* 执行SQL查询
*/
private List<ChatOnlineUser> queryChatOnlineUser(final String sql) {
return (List<ChatOnlineUser>)getHibernateTemplate().execute(new HibernateCallback() {
public Object doInHibernate(Session session) throws HibernateException {
Query query = session.createSQLQuery(sql).addEntity(ChatOnlineUser.class);
List<ChatOnlineUser> list = query.list();
if (list!=null && list.size()>0) {
return list;
} else {
return null;
}
}
});
}
//调用示例
sql = "select * from chat_online_user ORDER BY rand() LIMIT 1";
List<ChatOnlineUser> list = queryChatOnlineUser(sql);