Функция не будет увеличиваться на 1 - PullRequest
0 голосов
/ 05 апреля 2019

У меня есть проект на JavaEE, моя задача - привязать профессора к форме (форме размещения студентов), у меня есть атрибут nb_sup, который представляет собой число студентов, контролируемых выбранным профессором, это число увеличивается на единицу каждый раз, когда профессор влияет на студента. Проблема в том, что моя функция устанавливает значение nub_sup независимо от того, сколько раз я воздействую на одного и того же профессора.

Вот мой код

public  void SetNbSupPrfessor(Professor prof) 
    {
        Query query = em.createQuery("update Professor u set nb_sup=:nb_sup WHERE u.id =:id");
        query.setParameter("nb_sup", (1+ prof.getNb_sup()));
        query.setParameter("id",prof.getId() );
        query.executeUpdate(); 
    }

Можно с уверенностью сказать, что профессор наследует от сущности «Пользователь», «nb_sup» имеет тип int, а «id» - автоинкремент.

Я отредактировал свой код, чтобы этот работал

        Professor prof = em.createQuery("select p from Professor p where p.id = :id",Professor.class)
                .setParameter("id",id)
                .getSingleResult();
        prof.setNb_sup(prof.getNb_sup()+1);
        em.merge(prof);
...