package com.hxh.spring.test;
|
|
import java.util.List;
|
|
import org.hibernate.HibernateException;
|
import org.hibernate.Session;
|
import org.junit.Test;
|
import org.springframework.orm.hibernate4.HibernateCallback;
|
|
import com.newvideo.dao.VideoInfoDao;
|
import com.newvideo.util.BeanUtil;
|
|
public class MySqlTest {
|
|
@Test
|
public void test() {
|
VideoInfoDao viDao = BeanUtil.getBean(VideoInfoDao.class);
|
viDao.excute(new HibernateCallback() {
|
|
public Object doInHibernate(Session session) throws HibernateException {
|
List list = session
|
.createSQLQuery(
|
"select v.id,v.area,t.typeid from wk_video_area_video_temp t left join wk_video_video v on v.id=t.id where t.areas is null")
|
.setFirstResult(0).setMaxResults(5000).list();
|
for (int i = 0; i < list.size(); i++) {
|
Object[] objs = (Object[]) list.get(i);
|
List areas = session
|
.createSQLQuery(
|
"SELECT GROUP_CONCAT(DISTINCT (ca.`name`)) FROM (SELECT ca.`pid` FROM wk_category_area ca WHERE ? LIKE CONCAT('%', ca.`name`, '%') AND ca.`pid` > 4) ca1 LEFT JOIN wk_category_area ca ON ca1.`pid` = ca.id WHERE ca.`pid` = ? - 149")
|
.setParameter(0, objs[1] + "").setParameter(1, objs[2] + "").list();
|
|
if (areas.size() > 0) {
|
session.getTransaction().begin();
|
session.createSQLQuery("update wk_video_area_video_temp wt set wt.areas=? where wt.id=?")
|
.setParameter(0, areas.get(0) + "").setParameter(1, objs[0]).executeUpdate();
|
session.flush();
|
session.getTransaction().commit();
|
}
|
}
|
|
return null;
|
}
|
});
|
|
}
|
|
}
|