江南白衣的springside誕生已經(jīng)有一段時(shí)間了。。。 可惜我這幾天剛剛見到,慚愧啊。。。 挺有興致瀏覽了一下功能說明。 我考,那么多啊。。。真夠厲害的,還有居然用Groovy寫業(yè)務(wù)的計(jì)劃。。。不過。。。需求好像過于籠統(tǒng)吧。。赫赫。 比如,功能上是不是還有應(yīng)該有收藏夾這樣的東東。反正dearbook上是有的。。。赫赫
    下載下來初步看了一下。好的地方不說了畢竟目標(biāo)是best practise。。。 只是奇怪。。對于所有的業(yè)務(wù)數(shù)據(jù)的Dao都不提供行限制(就是UI上講的分頁)的邏輯。比如:
   
 1     /**
 2      * 按map中的條件進(jìn)行查詢。
 3      */
 4     public List findOrders(Map map) throws ParseException {
 5         Criteria criteria = getSession().createCriteria(getEntityClass());
 6 
 7         String id = (String) map.get("id");
 8         if (StringUtils.isNotBlank(id))
 9             criteria.add(Restrictions.eq("id"new Integer(id)));
10 
11         String beginDate = (String) map.get("beginDate");
12         if (StringUtils.isNotEmpty(beginDate))
13             criteria.add(Restrictions.ge("shipdate", DateUtil.parse(beginDate,
14                     "yyyy-MM-DD")));
15 
16         String endDate = (String) map.get("endDate");
17         if (StringUtils.isNotEmpty(endDate))
18             criteria.add(Restrictions.le("shipdate", DateUtil.parse(endDate,
19                     "yyyy-MM-DD")));
20 
21         String customer = (String) map.get("customer");
22         if (StringUtils.isNotEmpty(customer))
23             criteria.createAlias("customer""c").add(
24                     Restrictions.like("c.name""%" + customer + "%"));
25 
26         String status = (String) map.get("status");
27         if (StringUtils.isNotEmpty(status) && !"all".equals(status))
28             criteria.add(Restrictions.eq("status", status));
29 
30         criteria.addOrder(org.hibernate.criterion.Order.asc("shipdate"));
31 
32         return criteria.list();
33     }

這個(gè)是定單查找的 finder 雖然增加了這些條件,還是可能會(huì)有很多記錄被讀到中間件服務(wù)器的內(nèi)存中吧。也許以后會(huì)有的吧。或者我沒看到??。。。