Попытка сделать метод для поиска критериев гибернации - PullRequest
0 голосов
/ 18 мая 2018

Я пытаюсь создать метод для поиска критериев гибернации при входе пользователя в систему. В этом случае я не могу понять, как установить

 add(Restrictions.eq(propertyName, value)); 

для метода.Я знаю, propertyName должно быть column name.но как я могу получить это и есть ли ошибка в коде.Спасибо за продвинутый уровень!

Это мой сервлет

@Override
    protected void doPost(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
        try {
            String email=req.getParameter("email");
            String password=req.getParameter("password");

            String [] arr = {email,password};
                creatreCriteria(Account.class);
            for (int i = 0; i < arr.length; i++) {
                addeqResrictions("colum name", arr.length);
            }
        } catch (Exception e) {
        }
    }

Это мой сеанс.

 public static Criteria creatreCriteria(Class PC){
        getSession().createCriteria(PC);
        return criteria;
   }
    public static  SimpleExpression addeqResrictions(String p, Object v){
        criteria.add(Restrictions.eq(p, v));
        return simpleExpression;
    }
  } 

Ответы [ 2 ]

0 голосов
/ 18 мая 2018

Я думаю, что лучший способ - это проанализировать карту, содержащую значения.Ваш метод должен выглядеть следующим образом.

public static void addeqRestrictions(HashMap<String, Object> r) {
    for (Map.Entry<String, Object> entry : r.entrySet()) {
        criteria.add(Restrictions.eq(entry.getKey(), entry.getValue()));
    }
}

Использование,

HashMap<String, Object> map = new HashMap();
map.put("ColName", object1);
map.put("ColName", object2);
map.put("ColName", object3);

addeqRestrictions(map);
0 голосов
/ 18 мая 2018

Имя свойства должно быть не именем столбца, а именем свойства (именем поля) постоянного класса.Так что если у вас есть класс User с полем login.

@Entity
class User {

  @Column
  private String login;

}

Вы можете использовать этот критерий

Criteria criteria = getSession().createCriteria(User.class);
criteria.add(Restrictions.eq("login", someLogin);
...