summaryrefslogtreecommitdiff
path: root/orkbasej/java/net/sf/oreka/srvc/ObjectServiceHbn.java
diff options
context:
space:
mode:
Diffstat (limited to 'orkbasej/java/net/sf/oreka/srvc/ObjectServiceHbn.java')
-rw-r--r--orkbasej/java/net/sf/oreka/srvc/ObjectServiceHbn.java33
1 files changed, 33 insertions, 0 deletions
diff --git a/orkbasej/java/net/sf/oreka/srvc/ObjectServiceHbn.java b/orkbasej/java/net/sf/oreka/srvc/ObjectServiceHbn.java
index d23bc30..06a6274 100644
--- a/orkbasej/java/net/sf/oreka/srvc/ObjectServiceHbn.java
+++ b/orkbasej/java/net/sf/oreka/srvc/ObjectServiceHbn.java
@@ -4,7 +4,9 @@ import net.sf.oreka.HibernateManager;
import org.apache.log4j.Level;
import org.apache.log4j.Logger;
+import org.hibernate.Criteria;
import org.hibernate.HibernateException;
+import org.hibernate.ScrollableResults;
import org.hibernate.Session;
import org.hibernate.Transaction;
@@ -64,4 +66,35 @@ public class ObjectServiceHbn implements ObjectService {
if(hbnSession != null) {hbnSession.close();}
}
}
+
+ public int getNumObjects(java.lang.Class cl) {
+
+ Session hbnSession = null;
+ int numObjets = 0;
+
+ try
+ {
+ hbnSession = HibernateManager.instance().getSession();
+
+ Criteria crit = hbnSession.createCriteria(cl);
+
+ // figure out total number of objects returned
+ ScrollableResults scrollRes = crit.scroll();
+ if ( scrollRes.last() ) {
+ numObjets = scrollRes.getRowNumber();
+ }
+ }
+ catch ( HibernateException he ) {
+ logger.error("getNumObjects: exception:" + he.getClass().getName());
+ }
+ catch (Exception e)
+ {
+ logger.error("getNumObjects: exception:", e);
+ }
+ finally {
+ if(hbnSession != null) {hbnSession.close();}
+ }
+
+ return numObjets;
+ }
}