criteria级联查询 一对一但双向关联
有这么一个关系映射
我需要使用ROE(降序)排列,然后再把stock查出来,然后就可以遍历得到stock在这个查询结果中的排名
Roe(多方) 双向 Stock 双向 Hydm
方案 1使用stock作为查询主体,添加hydm作为条件,然后使用roe的reportValue作为查询条件,然后再用roe的reportValue排序
不会写根据多方参数排序的语句,放弃了
方案2使用roe作为查询主题,报表日期作为条件,在添加stock作为条件,再添加stock的hydm对象最为条件,然后再用hydm的reportvalue作为参数

看代码
public int stockGradingByRoe(Session session, String stockCode, String hydm, int reportYear, int reportSeason) { Criteria criteria = session.createCriteria(Roe.class, "r"); criteria.add(Restrictions.eq("reportYear", reportYear)).add(Restrictions.eq("reportSeason", reportSeason));//报表年月 criteria.createCriteria("stock").createCriteria("hydm").add(Restrictions.like("reportValue", hydm));//添加查询条件,用股票代码查询 criteria.addOrder(Order.desc("r.reportValue"));//用roe的报告日期降序排列 List<Roe> models = criteria.list(); int k = 0; for (Roe model : models) { k++; if (model.getStock().getStockCode().equals(stockCode)) { break; } } return k; }

浙公网安备 33010602011771号