Это мой старый запрос
String query = "SELECT a.content_id, a.content_name, a.image_name, a.image_path, a.rating, d.content_type_name" + "от content_master a, category_content_mappingb, "+" game_detail c, content_type_master d "+" где a.content_id = b.content_id "+" и c.content_id = a.content_id "+" и a.content_type_id = d.content_type_id "+" и b.category_id= '"+ category_id +"' "+" и find_in_set ('"+ group_master_id +"', c.group_master_id) "+" и a.is_active = 'Y' и b.is_active = 'Y' и c.is_active ='Y' "+" порядок по b.content_mapping_id DESC предел 0,3 ";
Критерии в режиме гибернации, такие как альтернатива find_in_set
Session session=new Configuration().configure().buildSessionFactory().openSession();
Criteria criteria=session.createCriteria(ContentMaster.class);
criteria.setFetchMode("CategoryContentMapping", FetchMode.JOIN);
criteria.setFetchMode("GameDetail", FetchMode.JOIN);
criteria.createAlias("categoryContentMappings","cat");
criteria.createAlias("contentTypeMaster", "ctm");
criteria.createAlias("gameDetails","game");
criteria.add(Restrictions.eq("cat.categoryMaster.categoryMasterId", 9));
criteria.add(Restrictions.disjunction()
.add(Restrictions.like("game.groupMasterId","%12,%"))
.add(Restrictions.like("game.groupMasterId","%,12,%"))
.add(Restrictions.like("game.groupMasterId","%12%")));
criteria.add(Restrictions.eq("isActive", "y"));
criteria.add(Restrictions.eq("cat.isActive", "y"));
criteria.add(Restrictions.eq("ctm.isActive", "y"));
criteria.addOrder(Order.desc("cat.contentMappingId"));