diff options
Diffstat (limited to 'orkbasej/java/net/sf/oreka/srvc/ObjectServiceHbn.java')
-rw-r--r-- | orkbasej/java/net/sf/oreka/srvc/ObjectServiceHbn.java | 33 |
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; + } } |