Положение параметра начинается с нуля, что означает, что вы должны начинать положение параметра с нуля:
SQLQuery query=session.createSQLQuery ("UPDATE uposlenik SET ime=?,prezime=?,adresa=?,plata=? WHERE id= ?");
query.setString(0, jText_Ime.getText());
query.setString(1, jText_Prezime.getText());
query.setString(2, jText_Adresa.getText());
query.setString(3, jText_Plata.getText());
query.setString(4, jText_id.getText());
Кстати, лучший способ обновления записи в Hibernate - это получить экземпляр объекта, который выхотите обновить, а затем обновить состояние объекта, вызывая его метод, а не писать UPDATE SQL вручную. Также рассмотрите возможность использования JPA API (т.е. EntityManager
), а не собственного Hibernate API (например, Session
). Только разверните EntityManager
до Session
, чтобы использовать специфическую функцию Hibernate, если что-то не может быть сделано с JPA. Короче говоря, коды лучших практик должны выглядеть так:
EntityTransaction tr = entityManager.getTransaction();
tr.begin();
Uposlenik uposlenik = entityManager.find(Uposlenik.class, 1);
if(uposlenik == null){
throw new RuntimeException("The record does not exist");
tr.rollback();
}
uposlenik.updatePrice(123);
......
tr.commit();