Advertisement
Guest User

Awful thing we use for querys

a guest
Feb 9th, 2017
96
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Java 2.33 KB | None | 0 0
  1. public ArrayList<Object> search(String searchedClass, ArrayList<DTOCriteria> criteriaList) {
  2.         Criteria cr = null;
  3.         try {
  4.             cr = HibernateUtil.getSession().createCriteria(Class.forName("entidades." + searchedClass), searchedClass.toLowerCase());
  5.         } catch (ClassNotFoundException e) {
  6.             System.out.println("Error creating criteria. " + e);
  7.         }
  8.  
  9.         if (criteriaList != null) {
  10.             for (DTOCriteria criteria : criteriaList) {
  11.                 String attribute = criteria.getAttribute();
  12.                 String operation = criteria.getOperation();
  13.                 Object value = criteria.getValue();
  14.  
  15.                 switch (operation) {
  16.                     case "=":
  17.                         cr.add(Restrictions.conjunction(Restrictions.eq(attribute, value)));
  18.                         break;
  19.                     case "<":
  20.                         cr.add(Restrictions.conjunction(Restrictions.lt(attribute, value)));
  21.                         break;
  22.                     case ">":
  23.                         cr.add(Restrictions.conjunction(Restrictions.gt(attribute, value)));
  24.                         break;
  25.                     case "<=":
  26.                         cr.add(Restrictions.conjunction(Restrictions.le(attribute, value)));
  27.                         break;
  28.                     case ">=":
  29.                         cr.add(Restrictions.conjunction(Restrictions.ge(attribute, value)));
  30.                         break;
  31.                     case "<>":
  32.                         cr.add(Restrictions.conjunction(Restrictions.ne(attribute, value)));
  33.                         break;
  34.                     case "contains":
  35.                         //Every collection have to be named: classList
  36.                         //Generate the collection name using the viariable "attribute"
  37.                         String list = String.valueOf(attribute.charAt(0))
  38.                                 .toLowerCase() + attribute.substring(1) + "List"; //ex: materialList
  39.                         cr.createAlias(list, "list")
  40.                                 .add(Restrictions.conjunction(Restrictions.eq("list.OID"
  41.                                         + searchedClass, ((entidades.Entity) value).getOid())));
  42.                         break;
  43.                 }
  44.             }
  45.         }
  46.         return (ArrayList) cr.list();
  47. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement