江南白衣的springside诞生已经有一段时间了。。。 可惜我这几天刚刚见到,惭愧啊。。。 挺有兴致浏览了一下功能说明。 我考,那么多啊。。。真够厉害的,还有居然用Groovy写业务的计划。。。不过。。。需求好像过于笼统吧。。赫赫。 比如,功能上是不是还有应该有收藏夹这样的东东。反正dearbook上是有的。。。赫赫
下载下来初步看了一下。好的地方不说了毕竟目标是best practise。。。 只是奇怪。。对于所有的业务数据的Dao都不提供行限制(就是UI上讲的分页)的逻辑。比如:
这个是定单查找的 finder 虽然增加了这些条件,还是可能会有很多记录被读到中间件服务器的内存中吧。也许以后会有的吧。或者我没看到??。。。
下载下来初步看了一下。好的地方不说了毕竟目标是best practise。。。 只是奇怪。。对于所有的业务数据的Dao都不提供行限制(就是UI上讲的分页)的逻辑。比如:
1
/**
2 * 按map中的条件进行查询。
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 }
2 * 按map中的条件进行查询。
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 }
这个是定单查找的 finder 虽然增加了这些条件,还是可能会有很多记录被读到中间件服务器的内存中吧。也许以后会有的吧。或者我没看到??。。。