[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