flex做前台,java做后台,分开订制vo和po非常重要。可能初期二者会很像,甚至一模一样,但到了后期需求一变化,就不方便了。一般是vo和视图对应,po和表对应。前台因为需要的字段是跨表的,所以通过视图来查询。
criteria.add(Restrictions.or(Restrictions.ne("isCancelled", CompetitorsConstant.COMPETITORS_ISCANCELLED_IS), Restrictions.isNull("isCancelled")));
在使用hiberante查询时,“isCancelled” 字段的值可能为空值,使用isEmpty(propertyName)、isNull(propertyName)都会报Property path [...] does not reference a collection异常,将为空的查询改为 Property.forName("isCancelled").isNull()即:
criteria.add(Restrictions.or(Restrictions.ne("isCancelled", CompetitorsConstant.COMPETITORS_ISCANCELLED_IS), Property.forName("isCancelled").isNull()));
ok,搞定了。