[jboss-cvs] jboss-seam/examples/wiki/src/org/jboss/seam/wiki/core/dao ...

Christian Bauer christian.bauer at jboss.com
Thu Feb 22 20:32:35 EST 2007


  User: cbauer  
  Date: 07/02/22 20:32:35

  Modified:    examples/wiki/src/org/jboss/seam/wiki/core/dao  UserDAO.java
  Log:
  Member search feature
  
  Revision  Changes    Path
  1.4       +23 -7     jboss-seam/examples/wiki/src/org/jboss/seam/wiki/core/dao/UserDAO.java
  
  (In the diff below, changes in quantity of whitespace are not shown.)
  
  Index: UserDAO.java
  ===================================================================
  RCS file: /cvsroot/jboss/jboss-seam/examples/wiki/src/org/jboss/seam/wiki/core/dao/UserDAO.java,v
  retrieving revision 1.3
  retrieving revision 1.4
  diff -u -b -r1.3 -r1.4
  --- UserDAO.java	22 Feb 2007 11:52:26 -0000	1.3
  +++ UserDAO.java	23 Feb 2007 01:32:35 -0000	1.4
  @@ -13,6 +13,8 @@
   import org.hibernate.criterion.Example;
   import org.hibernate.criterion.MatchMode;
   import org.hibernate.Session;
  +import org.hibernate.Criteria;
  +import org.hibernate.ScrollableResults;
   import org.hibernate.transform.DistinctRootEntityResultTransformer;
   
   import java.util.List;
  @@ -75,6 +77,23 @@
       @Transactional
       public List<User> findByExample(User exampleUser, String orderByProperty, boolean orderDescending,
                                       int firstResult, int maxResults, String... ignoreProperty) {
  +        Criteria crit = prepareExampleCriteria(exampleUser, orderByProperty, orderDescending, ignoreProperty);
  +        crit.setFirstResult(firstResult).setMaxResults(maxResults);
  +        return (List<User>)crit.list();
  +    }
  +
  +    @Transactional
  +    public int getRowCountByExample(User exampleUser, String... ignoreProperty) {
  +
  +        Criteria crit = prepareExampleCriteria(exampleUser, null, false, ignoreProperty);
  +        ScrollableResults cursor = crit.scroll();
  +        cursor.last();
  +        int count = cursor.getRowNumber() + 1;
  +        cursor.close();
  +        return count;
  +    }
  +
  +    private Criteria prepareExampleCriteria(User exampleUser, String orderByProperty, boolean orderDescending, String... ignoreProperty) {
   
           Example example =  Example.create(exampleUser).enableLike(MatchMode.ANYWHERE).ignoreCase();
   
  @@ -82,14 +101,11 @@
   
           Session session = (Session)entityManager.getDelegate();
   
  -        List result = session.createCriteria(User.class).add(example)
  -                .addOrder( orderDescending ? Order.desc(orderByProperty) : Order.asc(orderByProperty))
  -                .setFirstResult(firstResult)
  -                .setMaxResults(maxResults)
  -                .setResultTransformer(new DistinctRootEntityResultTransformer())
  -                .list();
  +        Criteria crit = session.createCriteria(User.class).add(example);
  +        if (orderByProperty != null)
  +                crit.addOrder( orderDescending ? Order.desc(orderByProperty) : Order.asc(orderByProperty) );
   
  -        return (List<User>)result;
  +        return crit.setResultTransformer(new DistinctRootEntityResultTransformer());
       }
   
   }
  
  
  



More information about the jboss-cvs-commits mailing list