//hibernate获取个数
public Long getStarLevel(Long id) {
final String hql = "select count(*) from Activity act where act.orginator.id="+id;
Long count = (Long)getHibernateTemplate().find(hql).listIterator().next();
return count;
}
//根据id修改一个对象属性
public String updateAttrNameByAttrValue(final String attrName,final String attrValue,final Long id){
Object result = this.getHibernateTemplate().execute(
new HibernateCallback() {
public Object doInHibernate(Session s) throws HibernateException, SQLException {
String hql ="";
String storeHql="";
if(attrName.equals("enabled")){
hql="update User u set u."+attrName+"="+attrValue+" where u.id="+id;
storeHql ="update Store s set s.enabled=0 where s.userId="+id;
}else{
hql="update User u set u."+attrName+"='"+attrValue+"' where u.id="+id;
storeHql ="update Store s set s.enabled=1 where s.userId="+id;
}
Query qStore = s.createQuery(storeHql);
Query q = null;
if(qStore.executeUpdate()>0){
q=s.createQuery(hql);
}
return q.executeUpdate();
}
});
return String.valueOf(result);
}
查询前50名(日志统计重复日志,按ID分组,按count大小降序,适用于mysql)
public List getTop50SmsContent() {
final String query = "select smsContentId,count(id) cc,(SELECT content from SmsContent sms where sms.id=smsContentId) content from SmsContentClickLog s GROUP BY s.smsContentId ORDER BY cc DESC LIMIT 50";
List list = (List)this.getHibernateTemplate().execute(new HibernateCallback() {
public Object doInHibernate(Session session) throws HibernateException, SQLException {
return session.createSQLQuery(query).list();
}
});
return list;
}
根据时间查询List
List list = (List)this.getHibernateTemplate().execute(new HibernateCallback() {
public Object doInHibernate(Session session) throws HibernateException, SQLException {
return session.createQuery(hql).setTimestamp("expTime",date).list();
}
});