我写了一个查询来查找模型和他的链接产品。现在,当我使用“order by model.name, p.number”语句对数据进行排序时,模型将被正确排序。但是对产品的分类并没有发生。如何解决此问题,以便对模型进行排序,并对模型中的产品也进行排序。
Session session = sharedData.getFactory().openSession();
Query query = session.createQuery("select distinct model FROM Model model join fetch model.products p "
+ "join p.itemsInProducts iip " + "join iip.company iipc " + "join iip.item i "
+ "join model.company modelc " + "Join p.company pc " + "where "
+ "model.active = '1' and modelc.companyId = '" + companyId +"' " + "and p.active = '1' and pc.companyId = '" + companyId +"' "
+ "and i.id = '"+ itemID + "' " + "and iip.active = '1' and iipc.companyId = '" + companyId +"' order by model.name, p.number");
List<Model> models = query.list();
session.close();
模型实体有一个包含产品的 Set products 变量。
此外,仅在 p.number 上排序时什么也没有发生。产品对象的顺序是随机排列的。
用Java比较器对集(不是用sql排序)排序。
TreeSet<Product> orderList = new TreeSet<>(new Comparator<Product>() {
@Override
public int compare(Product prod1, Product prod2) {
return prod1.getNumber().compareTo(prod2.getNumber());
}
});
orderList.addAll(result);
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句