package com.yeshi.buwan.service.imp;
|
|
import java.util.List;
|
|
import javax.annotation.Resource;
|
|
import org.hibernate.HibernateException;
|
import org.hibernate.Session;
|
import org.springframework.orm.hibernate4.HibernateCallback;
|
import org.springframework.stereotype.Service;
|
|
import com.yeshi.buwan.dao.VideoInfoDao;
|
import com.yeshi.buwan.util.SolrUtil;
|
|
@Service
|
public class SolrService {
|
@Resource
|
private VideoInfoDao videoInfoDao;
|
|
// 更新已经删除视频的索引
|
@SuppressWarnings({ "rawtypes" })
|
public void updateUnAvaileIndex() {
|
|
videoInfoDao.excute(new HibernateCallback() {
|
public Object doInHibernate(Session session) throws HibernateException {
|
// List<String> idList = new ArrayList<String>();
|
|
List list = session.createSQLQuery("select videoid from wk_solr_update").setFirstResult(0)
|
.setMaxResults(10000).list();
|
// for (int i = 0; i < list.size(); i++) {
|
// idList.add(list.get(i) + "");
|
// }
|
|
for (Object videoid : list) {
|
try {
|
session.getTransaction().begin();
|
SolrUtil.deleteVideoIndex(videoid+"");
|
session.createSQLQuery("delete from wk_solr_update where videoid=" + videoid).executeUpdate();
|
session.flush();
|
session.getTransaction().commit();
|
} catch (Exception e) {
|
e.printStackTrace();
|
session.getTransaction().rollback();
|
}
|
}
|
return null;
|
|
// return idList;
|
}
|
});
|
|
// for (String id : list) {
|
// final String videoid = id;
|
// videoInfoDao.excute(new HibernateCallback() {
|
// public Object doInHibernate(Session session) throws HibernateException {
|
//
|
// try {
|
// session.getTransaction().begin();
|
// SolrUtil.deleteVideoIndex(videoid);
|
// session.createSQLQuery("delete from wk_solr_update where videoid=" + videoid).executeUpdate();
|
// session.flush();
|
// session.getTransaction().commit();
|
// } catch (Exception e) {
|
// e.printStackTrace();
|
// if (session.getTransaction().isActive())
|
// session.getTransaction().rollback();
|
// }
|
// return null;
|
// }
|
// });
|
// }
|
|
}
|
|
}
|