package com.newvideo.service.imp; import java.util.ArrayList; import java.util.List; import com.newvideo.domain.VideoResource; import org.hibernate.HibernateException; import org.hibernate.Query; import org.hibernate.Session; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.orm.hibernate4.HibernateCallback; import org.springframework.stereotype.Service; import com.newvideo.dao.ResourceVideoDao; import com.newvideo.domain.ResourceVideo; import com.newvideo.domain.VideoInfo; import org.springframework.transaction.annotation.Transactional; @Service public class ResourceVideoService { @Autowired private ResourceVideoDao resourceVideoDao; @SuppressWarnings("unchecked") public List getResourceList(final List list) { if(list == null || list.size() ==0){ return new ArrayList(); } return (List) resourceVideoDao.excute(new HibernateCallback>() { @Override public List doInHibernate(Session session) throws HibernateException { StringBuffer hql=new StringBuffer("from ResourceVideo rv "); int i=0; for (VideoInfo videoInfo : list) { if(i==0) hql.append(" where ( rv.video.id = ? ) "); else hql.append(" or ( rv.video.id = ? ) "); i++; } hql.append(" order by rv.video.id desc "); Query query = session.createQuery(hql.toString()); i=0; for (VideoInfo videoInfo : list) { query.setParameter(i, videoInfo.getId()); i++; } return query.list(); } }); } public void save(ResourceVideo resourceVideo) { resourceVideoDao.save(resourceVideo); } public void addVideoResource(String videoId, String resourceId) { ResourceVideo rv = resourceVideoDao.selectByVideoIdAndResourceId(videoId, resourceId); if (rv == null) { System.out.println(videoId + ":" + resourceId); rv = new ResourceVideo(); rv.setResource(new VideoResource(resourceId + "")); rv.setVideo(new VideoInfo(videoId + "")); resourceVideoDao.save(rv); } } @Transactional public void delete(String videoId, String resourceId) { ResourceVideo resourceVideo = resourceVideoDao.selectByVideoIdAndResourceId(videoId, resourceId + ""); if (resourceVideo != null) { resourceVideoDao.delete(resourceVideo); } } }