View Javadoc
1   // license-header java merge-point
2   //
3   // Attention: Generated code! Do not modify by hand!
4   // Generated by: hibernate/SpringHibernateDaoBase.vsl in <project>/mda/src/main/cartridge/custom/...
5   //
6   package fr.ifremer.quadrige2.core.dao.referential;
7   
8   /*-
9    * #%L
10   * Quadrige2 Core :: Server API
11   * %%
12   * Copyright (C) 2017 Ifremer
13   * %%
14   * This program is free software: you can redistribute it and/or modify
15   * it under the terms of the GNU Affero General Public License as published by
16   * the Free Software Foundation, either version 3 of the License, or
17   * (at your option) any later version.
18   * 
19   * This program is distributed in the hope that it will be useful,
20   * but WITHOUT ANY WARRANTY; without even the implied warranty of
21   * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
22   * GNU General Public License for more details.
23   * 
24   * You should have received a copy of the GNU Affero General Public License
25   * along with this program.  If not, see <http://www.gnu.org/licenses/>.
26   * #L%
27   */
28  
29  import fr.ifremer.quadrige2.core.dao.PrincipalStore;
30  import fr.ifremer.quadrige2.core.dao.PropertySearch;
31  import fr.ifremer.quadrige2.core.dao.Search;
32  import fr.ifremer.quadrige2.core.dao.administration.user.PrivilegeCode;
33  import fr.ifremer.quadrige2.core.dao.technical.hibernate.HibernateDaoSupport;
34  import fr.ifremer.quadrige2.core.vo.administration.user.PrivilegeVO;
35  import java.security.Principal;
36  import java.sql.Timestamp;
37  import java.util.ArrayList;
38  import java.util.Collection;
39  import java.util.Iterator;
40  import java.util.LinkedHashSet;
41  import java.util.List;
42  import java.util.Set;
43  import javax.annotation.Resource;
44  import org.andromda.spring.PaginationResult;
45  import org.apache.commons.collections.CollectionUtils;
46  import org.apache.commons.collections.Transformer;
47  import org.hibernate.Criteria;
48  import org.hibernate.HibernateException;
49  import org.hibernate.Query;
50  import org.hibernate.ScrollableResults;
51  
52  /**
53   * <p>
54   * Base Spring DAO Class: is able to create, update, remove, load, and find
55   * objects of type <code>Privilege</code>.
56   * </p>
57   *
58   * @see Privilege
59   */
60  public abstract class PrivilegeDaoBase
61      extends HibernateDaoSupport    
62      implements PrivilegeDao
63  {
64      /**
65       * {@inheritDoc}
66       */
67      @Override
68      public Object get(final int transform, final String privilegeCd)
69      {
70          if (privilegeCd == null)
71          {
72              throw new IllegalArgumentException(
73                  "Privilege.get - 'privilegeCd' can not be null");
74          }
75          final Privilege entity = get(PrivilegeImpl.class, privilegeCd);
76          return transformEntity(transform, entity);
77      }
78      /**
79       * {@inheritDoc}
80       */
81      @Override
82      public Privilege get(String privilegeCd)
83      {
84          return (Privilege)this.get(TRANSFORM_NONE, privilegeCd);
85      }
86  
87      /**
88       * {@inheritDoc}
89       */
90      @Override
91      public Object load(final int transform, final String privilegeCd)
92      {
93          if (privilegeCd == null)
94          {
95              throw new IllegalArgumentException(
96                  "Privilege.load - 'privilegeCd' can not be null");
97          }
98          final Privilege entity = get(PrivilegeImpl.class, privilegeCd);
99          return transformEntity(transform, entity);
100     }
101 
102     /**
103      * {@inheritDoc}
104      */
105     @Override
106     public Privilege load(String privilegeCd)
107     {
108         return (Privilege)this.load(TRANSFORM_NONE, privilegeCd);
109     }
110 
111     /**
112      * {@inheritDoc}
113      */
114     @Override
115     @SuppressWarnings({"unchecked"})
116     public Collection<Privilege> loadAll()
117     {
118         return (Collection<Privilege>) this.loadAll(PrivilegeDao.TRANSFORM_NONE);
119     }
120 
121     /**
122      * {@inheritDoc}
123      */
124     @Override
125     public Collection<?> loadAll(final int transform)
126     {
127         return this.loadAll(transform, -1, -1);
128     }
129 
130     /**
131      * {@inheritDoc}
132      */
133     @Override
134     public Collection<?> loadAll(final int pageNumber, final int pageSize)
135     {
136         return this.loadAll(PrivilegeDao.TRANSFORM_NONE, pageNumber, pageSize);
137     }
138 
139     /**
140      * {@inheritDoc}
141      */
142     @Override
143     public Collection<?> loadAll(final int transform, final int pageNumber, final int pageSize)
144     {
145         try
146         {
147             final Criteria criteria = this.getSession().createCriteria(PrivilegeImpl.class);
148             if (pageNumber > 0 && pageSize > 0)
149             {
150                 criteria.setFirstResult(this.calculateFirstResult(pageNumber, pageSize));
151                 criteria.setMaxResults(pageSize);
152             }
153             final Collection<?> results = criteria.list();
154             this.transformEntities(transform, results);
155             return results;
156         }
157         catch (HibernateException ex)
158         {
159             throw ex;
160         }
161     }
162 
163     /**
164      * firstResult = (pageNumber - 1) * pageSize
165      * @param pageNumber
166      * @param pageSize
167      * @return firstResult
168      */
169     protected int calculateFirstResult(int pageNumber, int pageSize)
170     {
171         int firstResult = 0;
172         if (pageNumber > 0)
173         {
174             firstResult = (pageNumber - 1) * pageSize;
175         }
176         return firstResult;
177     }
178 
179     /**
180      * {@inheritDoc}
181      */
182     @Override
183     public Privilege create(Privilege privilege)
184     {
185         return (Privilege)this.create(PrivilegeDao.TRANSFORM_NONE, privilege);
186     }
187 
188     /**
189      * {@inheritDoc}
190      */
191     @Override
192     public Object create(final int transform, final Privilege privilege)
193     {
194         if (privilege == null)
195         {
196             throw new IllegalArgumentException(
197                 "Privilege.create - 'privilege' can not be null");
198         }
199         this.getSessionFactory().getCurrentSession().save(privilege);
200         return this.transformEntity(transform, privilege);
201     }
202 
203     /**
204      * {@inheritDoc}
205      */
206     @Override
207     @SuppressWarnings({"unchecked"})
208     public Collection<Privilege> create(final Collection<Privilege> entities)
209     {
210         return (Collection<Privilege>) create(PrivilegeDao.TRANSFORM_NONE, entities);
211     }
212 
213     /**
214      * {@inheritDoc}
215      */
216     @Override
217     public Collection<?> create(final int transform, final Collection<Privilege> entities)
218     {
219         if (entities == null)
220         {
221             throw new IllegalArgumentException(
222                 "Privilege.create - 'entities' can not be null");
223         }
224                     for (Privilege entity : entities)
225                     {
226                         create(transform, entity);
227                     }
228         return entities;
229     }
230 
231     /**
232      * {@inheritDoc}
233      */
234     @Override
235     public Privilege create(
236         String privilegeNm,
237         String privilegeDc,
238         Timestamp updateDt)
239     {
240         return (Privilege)this.create(PrivilegeDao.TRANSFORM_NONE, privilegeNm, privilegeDc, updateDt);
241     }
242 
243     /**
244      * {@inheritDoc}
245      */
246     @Override
247     public Object create(
248         final int transform,
249         String privilegeNm,
250         String privilegeDc,
251         Timestamp updateDt)
252     {
253         Privilege entity = new PrivilegeImpl();
254         entity.setPrivilegeNm(privilegeNm);
255         entity.setPrivilegeDc(privilegeDc);
256         entity.setUpdateDt(updateDt);
257         return this.create(transform, entity);
258     }
259 
260     /**
261      * {@inheritDoc}
262      */
263     @Override
264     public Privilege create(
265         String privilegeNm,
266         Timestamp updateDt,
267         Status status)
268     {
269         return (Privilege)this.create(PrivilegeDao.TRANSFORM_NONE, privilegeNm, updateDt, status);
270     }
271 
272     /**
273      * {@inheritDoc}
274      */
275     @Override
276     public Object create(
277         final int transform,
278         String privilegeNm,
279         Timestamp updateDt,
280         Status status)
281     {
282         Privilege entity = new PrivilegeImpl();
283         entity.setPrivilegeNm(privilegeNm);
284         entity.setUpdateDt(updateDt);
285         entity.setStatus(status);
286         return this.create(transform, entity);
287     }
288 
289     /**
290      * {@inheritDoc}
291      */
292     @Override
293     public void update(Privilege privilege)
294     {
295         if (privilege == null)
296         {
297             throw new IllegalArgumentException(
298                 "Privilege.update - 'privilege' can not be null");
299         }
300         this.getSessionFactory().getCurrentSession().update(privilege);
301     }
302 
303     /**
304      * {@inheritDoc}
305      */
306     @Override
307     public void update(final Collection<Privilege> entities)
308     {
309         if (entities == null)
310         {
311             throw new IllegalArgumentException(
312                 "Privilege.update - 'entities' can not be null");
313         }
314                     for (Privilege entity : entities)
315                     {
316                         update(entity);
317                     }
318     }
319 
320     /**
321      * {@inheritDoc}
322      */
323     @Override
324     public void remove(Privilege privilege)
325     {
326         if (privilege == null)
327         {
328             throw new IllegalArgumentException(
329                 "Privilege.remove - 'privilege' can not be null");
330         }
331         this.getSessionFactory().getCurrentSession().delete(privilege);
332     }
333 
334     /**
335      * {@inheritDoc}
336      */
337     @Override
338     public void remove(String privilegeCd)
339     {
340         if (privilegeCd == null)
341         {
342             throw new IllegalArgumentException(
343                 "Privilege.remove - 'privilegeCd' can not be null");
344         }
345         Privilege entity = this.get(privilegeCd);
346         if (entity != null)
347         {
348             this.remove(entity);
349         }
350     }
351 
352     /**
353      * {@inheritDoc}
354      */
355     @Override
356     public void remove(Collection<Privilege> entities)
357     {
358         if (entities == null)
359         {
360             throw new IllegalArgumentException(
361                 "Privilege.remove - 'entities' can not be null");
362         }
363         deleteAll(entities);
364     }
365     /**
366      * Allows transformation of entities into value objects
367      * (or something else for that matter), when the <code>transform</code>
368      * flag is set to one of the constants defined in <code>PrivilegeDao</code>, please note
369      * that the {@link #TRANSFORM_NONE} constant denotes no transformation, so the entity itself
370      * will be returned.
371      * <p>
372      * This method will return instances of these types:
373      * <ul>
374      *   <li>{@link Privilege} - {@link #TRANSFORM_NONE}</li>
375      *   <li>{@link PrivilegeVO} - {@link #TRANSFORM_PRIVILEGEVO}</li>
376      *   <li>{@link PrivilegeCode} - {@link #TRANSFORM_PRIVILEGECODE}</li>
377      * </ul>
378      *
379      * If the integer argument value is unknown {@link #TRANSFORM_NONE} is assumed.
380      *
381      * @param transform one of the constants declared in {@link PrivilegeDao}
382      * @param entity an entity that was found
383      * @return the transformed entity (i.e. new value object, etc)
384      * @see PrivilegeDao#transformEntity(int, Privilege)
385      */
386     public Object transformEntity(final int transform, final Privilege entity)
387     {
388         Object target = null;
389         if (entity != null)
390         {
391             switch (transform)
392             {
393                 case TRANSFORM_PRIVILEGEVO :
394                     target = toPrivilegeVO(entity);
395                     break;
396                 case TRANSFORM_PRIVILEGECODE :
397                     target = toPrivilegeCode(entity);
398                     break;
399                 case PrivilegeDao.TRANSFORM_NONE : // fall-through
400                 default:
401                     target = entity;
402             }
403         }
404         return target;
405     }
406 
407     /**
408      * {@inheritDoc}
409      */
410     @Override
411     public void transformEntities(final int transform, final Collection<?> entities)
412     {
413         switch (transform)
414         {
415             case TRANSFORM_PRIVILEGEVO :
416                 toPrivilegeVOCollection(entities);
417                 break;
418             case TRANSFORM_PRIVILEGECODE :
419                 toPrivilegeCodeCollection(entities);
420                 break;
421             case PrivilegeDao.TRANSFORM_NONE : // fall-through
422                 default:
423                 // do nothing;
424         }
425     }
426 
427     /**
428      * @see PrivilegeDao#toEntities(Collection)
429      */
430     public void toEntities(final Collection<?> results)
431     {
432         if (results != null)
433         {
434             CollectionUtils.transform(results, this.ENTITYTRANSFORMER);
435         }
436     }
437 
438     /**
439      * This anonymous transformer is designed to transform report query results
440      * (which result in an array of entities) to {@link Privilege}
441      * using the Jakarta Commons-Collections Transformation API.
442      */
443     private Transformer ENTITYTRANSFORMER =
444         new Transformer()
445         {
446             public Object transform(Object input)
447             {
448                 Object result = null;
449                 if (input instanceof Object[])
450                 {
451                     result = toEntity((Object[])input);
452                 }
453                 else if (input instanceof Privilege)
454                 {
455                     result = input;
456                 }
457                 return result;
458             }
459         };
460 
461     /**
462      * @param row
463      * @return Privilege
464      */
465     protected Privilege toEntity(Object[] row)
466     {
467         Privilege target = null;
468         if (row != null)
469         {
470             final int numberOfObjects = row.length;
471             for (int ctr = 0; ctr < numberOfObjects; ctr++)
472             {
473                 final Object object = row[ctr];
474                 if (object instanceof Privilege)
475                 {
476                     target = (Privilege)object;
477                     break;
478                 }
479             }
480         }
481         return target;
482     }
483 
484     /**
485      * {@inheritDoc}
486      */
487     @Override
488     @SuppressWarnings({"unchecked"})
489     public final Collection<PrivilegeVO> toPrivilegeVOCollection(Collection<?> entities)
490     {
491         Collection<PrivilegeVO> result = new ArrayList<PrivilegeVO>();
492         if (entities != null)
493         {
494             CollectionUtils.transform(entities, this.PRIVILEGEVO_TRANSFORMER);
495             result.addAll((Collection<? extends PrivilegeVO>) entities);
496         }
497         return result;
498     }
499 
500     /**
501      * {@inheritDoc}
502      */
503     @Override
504     @SuppressWarnings({ "unchecked" })
505     public final PrivilegeVO[] toPrivilegeVOArray(Collection<?> entities)
506     {
507         PrivilegeVO[] result = null;
508         if (entities != null)
509         {
510             // Unchecked transformation: reuses entities Collection
511             final Collection collection = new ArrayList(entities);
512             this.toPrivilegeVOCollection(collection);
513             result = (PrivilegeVO[]) collection.toArray(new PrivilegeVO[collection.size()]);
514         }
515         return result;
516     }
517 
518     /**
519      * Default implementation for transforming the results of a report query into a value object. This
520      * implementation exists for convenience reasons only. It needs only be overridden in the
521      * {@link PrivilegeDaoImpl} class if you intend to use reporting queries.
522      * @param row
523      * @return toPrivilegeVO(this.toEntity(row))
524      * @see PrivilegeDao#toPrivilegeVO(Privilege)
525      */
526     protected PrivilegeVO toPrivilegeVO(Object[] row)
527     {
528         return this.toPrivilegeVO(this.toEntity(row));
529     }
530 
531     /**
532      * This anonymous transformer is designed to transform entities or report query results
533      * (which result in an array of objects) to {@link PrivilegeVO}
534      * using the Jakarta Commons-Collections Transformation API.
535      */
536     private Transformer PRIVILEGEVO_TRANSFORMER =
537         new Transformer()
538         {
539             public Object transform(Object input)
540             {
541                 Object result = null;
542                 if (input instanceof Privilege)
543                 {
544                     result = toPrivilegeVO((Privilege)input);
545                 }
546                 else if (input instanceof Object[])
547                 {
548                     result = toPrivilegeVO((Object[])input);
549                 }
550                 return result;
551             }
552         };
553 
554     /**
555      * {@inheritDoc}
556      */
557     @Override
558     public final void privilegeVOToEntityCollection(Collection<?> instances)
559     {
560         if (instances != null)
561         {
562             for (final Iterator<?> iterator = instances.iterator(); iterator.hasNext();)
563             {
564                 // - remove an objects that are null or not of the correct instance
565                 if (!(iterator.next() instanceof PrivilegeVO))
566                 {
567                     iterator.remove();
568                 }
569             }
570             CollectionUtils.transform(instances, this.PrivilegeVOToEntityTransformer);
571         }
572     }
573 
574     private final Transformer PrivilegeVOToEntityTransformer =
575         new Transformer()
576         {
577             public Object transform(Object input)
578             {
579                 return privilegeVOToEntity((PrivilegeVO)input);
580             }
581         };
582 
583 
584     /**
585      * {@inheritDoc}
586      */
587     @Override
588     public void toPrivilegeVO(
589         Privilege source,
590         PrivilegeVO target)
591     {
592         target.setPrivilegeCd(source.getPrivilegeCd());
593         target.setPrivilegeNm(source.getPrivilegeNm());
594         target.setPrivilegeDc(source.getPrivilegeDc());
595         target.setUpdateDt(source.getUpdateDt());
596     }
597 
598     /**
599      * {@inheritDoc}
600      */
601     @Override
602     public PrivilegeVO toPrivilegeVO(final Privilege entity)
603     {
604         PrivilegeVO target = null;
605         if (entity != null)
606         {
607             target =  new PrivilegeVO();
608             this.toPrivilegeVO(entity, target);
609         }
610         return target;
611     }
612 
613     /**
614      * {@inheritDoc}
615      */
616     @Override
617     public void privilegeVOToEntity(
618         PrivilegeVO source,
619         Privilege target,
620         boolean copyIfNull)
621     {
622         if (copyIfNull || source.getPrivilegeNm() != null)
623         {
624             target.setPrivilegeNm(source.getPrivilegeNm());
625         }
626         if (copyIfNull || source.getPrivilegeDc() != null)
627         {
628             target.setPrivilegeDc(source.getPrivilegeDc());
629         }
630         if (copyIfNull || source.getUpdateDt() != null)
631         {
632             target.setUpdateDt(source.getUpdateDt());
633         }
634     }
635 
636     /**
637      * {@inheritDoc}
638      */
639     @Override
640     @SuppressWarnings({"unchecked"})
641     public final Collection<PrivilegeCode> toPrivilegeCodeCollection(Collection<?> entities)
642     {
643         Collection<PrivilegeCode> result = new ArrayList<PrivilegeCode>();
644         if (entities != null)
645         {
646             CollectionUtils.transform(entities, this.PRIVILEGECODE_TRANSFORMER);
647             result.addAll((Collection<? extends PrivilegeCode>) entities);
648         }
649         return result;
650     }
651 
652     /**
653      * {@inheritDoc}
654      */
655     @Override
656     @SuppressWarnings({ "unchecked" })
657     public final PrivilegeCode[] toPrivilegeCodeArray(Collection<?> entities)
658     {
659         PrivilegeCode[] result = null;
660         if (entities != null)
661         {
662             // Unchecked transformation: reuses entities Collection
663             final Collection collection = new ArrayList(entities);
664             this.toPrivilegeCodeCollection(collection);
665             result = (PrivilegeCode[]) collection.toArray(new PrivilegeCode[collection.size()]);
666         }
667         return result;
668     }
669 
670     /**
671      * Default implementation for transforming the results of a report query into a value object. This
672      * implementation exists for convenience reasons only. It needs only be overridden in the
673      * {@link PrivilegeDaoImpl} class if you intend to use reporting queries.
674      * @param row
675      * @return toPrivilegeCode(this.toEntity(row))
676      * @see PrivilegeDao#toPrivilegeCode(Privilege)
677      */
678     protected PrivilegeCode toPrivilegeCode(Object[] row)
679     {
680         return this.toPrivilegeCode(this.toEntity(row));
681     }
682 
683     /**
684      * This anonymous transformer is designed to transform entities or report query results
685      * (which result in an array of objects) to {@link PrivilegeCode}
686      * using the Jakarta Commons-Collections Transformation API.
687      */
688     private Transformer PRIVILEGECODE_TRANSFORMER =
689         new Transformer()
690         {
691             public Object transform(Object input)
692             {
693                 Object result = null;
694                 if (input instanceof Privilege)
695                 {
696                     result = toPrivilegeCode((Privilege)input);
697                 }
698                 else if (input instanceof Object[])
699                 {
700                     result = toPrivilegeCode((Object[])input);
701                 }
702                 return result;
703             }
704         };
705 
706     /**
707      * {@inheritDoc}
708      */
709     @Override
710     public final void privilegeCodeToEntityCollection(Collection<?> instances)
711     {
712         if (instances != null)
713         {
714             for (final Iterator<?> iterator = instances.iterator(); iterator.hasNext();)
715             {
716                 // - remove an objects that are null or not of the correct instance
717                 if (!(iterator.next() instanceof PrivilegeCode))
718                 {
719                     iterator.remove();
720                 }
721             }
722             CollectionUtils.transform(instances, this.PrivilegeCodeToEntityTransformer);
723         }
724     }
725 
726     private final Transformer PrivilegeCodeToEntityTransformer =
727         new Transformer()
728         {
729             public Object transform(Object input)
730             {
731                 return privilegeCodeToEntity((PrivilegeCode)input);
732             }
733         };
734 
735 
736     /**
737      * {@inheritDoc}
738      */
739     @Override
740     public void toPrivilegeCode(
741         Privilege source,
742         PrivilegeCode target)
743     {
744     }
745 
746     /**
747      * {@inheritDoc}
748      */
749     @Override
750     public PrivilegeCode toPrivilegeCode(final Privilege entity)
751     {
752         PrivilegeCode target = null;
753         if (entity != null)
754         {
755             // Object reference is an Enumeration, must be instantiated with a value in the Impl transformation
756             target = null;
757             this.toPrivilegeCode(entity, target);
758         }
759         return target;
760     }
761 
762     /**
763      * {@inheritDoc}
764      */
765     @Override
766     public void privilegeCodeToEntity(
767         PrivilegeCode source,
768         Privilege target,
769         boolean copyIfNull)
770     {
771     }
772 
773     /**
774      * Gets the current <code>principal</code> if one has been set,
775      * otherwise returns <code>null</code>.
776      *
777      * @return the current principal
778      */
779     protected Principal getPrincipal()
780     {
781         return PrincipalStore.get();
782     }
783 
784     /**
785      * {@inheritDoc}
786      */
787     @Override
788     @SuppressWarnings({ "unchecked" })
789     public PaginationResult search(final int transform, final int pageNumber, final int pageSize, final Search search)
790     {
791         try
792         {
793             search.setPageNumber(pageNumber);
794             search.setPageSize(pageSize);
795             final PropertySearch propertySearch = new PropertySearch(
796                 this.getSession(), PrivilegeImpl.class, search);
797             final List results = propertySearch.executeAsList();
798             this.transformEntities(transform, results);
799             return new PaginationResult(results.toArray(new Object[results.size()]), propertySearch.getTotalCount());
800         }
801         catch (HibernateException ex)
802         {
803             throw ex; /*super.convertHibernateAccessException(ex);*/
804         }
805     }
806 
807     /**
808      * {@inheritDoc}
809      */
810     @Override
811     public PaginationResult search(final int pageNumber, final int pageSize, final Search search)
812     {
813         return this.search(PrivilegeDao.TRANSFORM_NONE, pageNumber, pageSize, search);
814     }
815 
816     /**
817      * {@inheritDoc}
818      */
819     @Override
820     public Set<?> search(final int transform, final Search search)
821     {
822         try
823         {
824             final PropertySearch propertySearch = new PropertySearch(
825                 this.getSession(), PrivilegeImpl.class, search);
826             final Set<?> results = propertySearch.executeAsSet();
827             this.transformEntities(transform, results);
828             return results;
829         }
830         catch (HibernateException ex)
831         {
832             throw ex; /*super.convertHibernateAccessException(ex);*/
833         }
834     }
835 
836     /**
837      * {@inheritDoc}
838      */
839     @Override
840     @SuppressWarnings("unchecked")
841     public Set<Privilege> search(final Search search)
842     {
843         return (Set<Privilege>) this.search(PrivilegeDao.TRANSFORM_NONE, search);
844     }
845 
846     /**
847      * Executes and returns the given Hibernate queryObject as a {@link PaginationResult} instance.
848      * @param queryObject
849      * @param transform
850      * @param pageNumber
851      * @param pageSize
852      * @return PaginationResult
853      */
854     @SuppressWarnings({ "unchecked" })
855     protected PaginationResult getPaginationResult(
856         final Query queryObject,
857         final int transform, int pageNumber, int pageSize)
858     {
859         try
860         {
861             final ScrollableResults scrollableResults = queryObject.scroll();
862             scrollableResults.last();
863             int totalCount = scrollableResults.getRowNumber();
864             totalCount = totalCount >= 0 ? totalCount + 1 : 0;
865             if (pageNumber > 0 && pageSize > 0)
866             {
867                 queryObject.setFirstResult(this.calculateFirstResult(pageNumber, pageSize));
868                 queryObject.setMaxResults(pageSize);
869             }
870             // Unchecked transformation because Set object is reused, cannot be strongly typed.
871             Set results = new LinkedHashSet(queryObject.list());
872             transformEntities(transform, results);
873             return new PaginationResult(results.toArray(new Object[results.size()]), totalCount);
874         }
875         catch (HibernateException ex)
876         {
877             throw ex; /*super.convertHibernateAccessException(ex);*/
878         }
879     }
880 
881     // spring-hibernate-dao-base merge-point
882 }