Changeset 9124

Show
Ignore:
Timestamp:
06/15/08 00:54:24 (3 months ago)
Author:
robert.thurnher
Message:

improves hibernate wrapper list method

Files:

Legend:

Unmodified
Added
Removed
Modified
Copied
Moved
  • sandbox/blog-ng_hibernate/app/controllers/blog.js

    r9123 r9124  
    88 
    99function main_action() { 
    10    var articles = db.find('from Article a order by a.createTime desc'); 
     10   var articles = db.list('Article', 50, 'createTime'); 
    1111   var context = { 
    1212      loginLink: function (macrotag, skin) { 
  • sandbox/blog-ng_hibernate/lib/hibernate.js

    r9121 r9124  
    112112            break; 
    113113         case 'list': 
    114             var crit = sess['createCriteria(java.lang.String)'](params.type); 
    115             crit.setCacheable(true); 
    116             crit.setMaxResults(params.count); 
    117             var result = new ScriptableList(crit.list()); 
     114            var criteria = sess['createCriteria(java.lang.String)'](params.type); 
     115            criteria.setCacheable(true); 
     116            if (params.orderBy) { 
     117               var order = (params.order == 'asc') ? org.hibernate.criterion.Order.asc(params.orderBy) : 
     118                                                     org.hibernate.criterion.Order.desc(params.orderBy); 
     119               criteria.addOrder(order); 
     120            } 
     121            criteria.setMaxResults(params.max); 
     122 
     123            var result = new ScriptableList(criteria.list()); 
    118124            for (var i in result) { 
    119125               result[i] = new ScriptableMap(result[i]); 
     
    175181   }; 
    176182 
    177    this.list = function (type, count) { 
    178       try { 
    179          return this.getHibernateTemplate({ method: 'list', type: type, count: count }); 
     183   this.list = function (type, max, orderBy, order) { 
     184      try { 
     185         return this.getHibernateTemplate({ method: 'list', type: type, max: max, orderBy: orderBy, order: order }); 
    180186      } catch (e) { 
    181187         log.error('in "list": ' + e.toString());