http://blog.csdn.net/wangshfa/article/details/27323297
1 | public interface BatchDao<T> { |
2 | public void batchInsert(List<T> list); |
4 | public void batchUpdate(List<T> list); |
1 | public interface ReceiptDao extends PagingAndSortingRepository<Receipt, Long>, BatchDao<Receipt> { |
4 | Page<Receipt> findByUserId(Long userId, Pageable pageable); |
03 | import javax.persistence.EntityManager; |
04 | import javax.persistence.PersistenceContext; |
06 | import org.hibernate.Query; |
07 | import org.hibernate.ScrollableResults; |
08 | import org.hibernate.Session; |
09 | import org.springframework.transaction.annotation.Transactional; |
11 | import com.ygsoft.cxpt.dao.BatchDao; |
12 | import com.ygsoft.util.dwz.Page; |
16 | * @author <a href="mailto:ketayao@gmail.com">ketayao</a> Version 1.1.0 |
17 | * @since 2012-8-27 上午10:55:41 |
20 | public abstract class AbstractDao implements BatchDao{ |
23 | protected EntityManager em; |
26 | public void batchInsert(List list) { |
27 | for ( int i = 0 ; i < list.size(); i++) { |
28 | em.persist(list.get(i)); |
37 | public void batchUpdate(List list) { |
38 | for ( int i = 0 ; i < list.size(); i++) { |
39 | em.merge(list.get(i)); |
48 | * Hibernate使用游标分页的一个通用查询分页方法 |
55 | @SuppressWarnings ( "unchecked" ) |
56 | public List findPageByQuery( final String queryString, |
57 | final Object[] parameters, final Page page) { |
59 | Session session = (Session) em.getDelegate(); |
61 | Query query = session.createQuery(queryString); |
64 | if (parameters != null ) { |
65 | for ( int i = 0 ; i < parameters.length; i++) { |
66 | query.setParameter(i, parameters[i]); |
71 | ScrollableResults sr = query.scroll(); |
73 | int totalCount = sr.getRowNumber(); |
76 | int totalRec = totalCount + 1 ; |
77 | page.setTotalCount(totalRec); |
79 | int startIndex = (page.getPageNum() - 1 ) * page.getNumPerPage(); |
81 | query.setFirstResult(startIndex); |
82 | query.setMaxResults(page.getNumPerPage()); |
84 | List reList = query.list(); |
01 | import com.ygsoft.cxpt.entity.FmisItem; |
05 | * @author <a href="mailto:ketayao@gmail.com">ketayao</a> |
07 | * @since 2012-9-7 下午5:28:58 |
10 | public class FmisItemDaoImpl extends AbstractDao<FmisItem> { |