У меня есть проект на 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);