У меня есть эта функция :
public void updateAnimal(int idToModify, String name, String type, int age) {
entityManager.getTransaction().begin();
Query query = entityManager.createQuery(
"UPDATE PetHospital.Animal SET animalName=:name, animalType=:type, animalAge=:age WHERE idAnimal=:idToModify");
query.setParameter("name", name);
query.setParameter("type", type);
query.setParameter("age", age);
query.setParameter("idToModify", idToModify);
query.executeUpdate();
entityManager.getTransaction().commit();
}
И я получаю это ошибок :
Исключение в потоке "main" java.lang.IllegalArgumentException: исключение произошло при создании запроса в EntityManager: Exception
Описание: синтаксический анализ ошибок [ОБНОВЛЕНИЕ PetHospital.Animal SET
animalName =: name, animalType =: type, animalAge =: age WHERE
idAnimal =: idToModify]. [30, 40] Выражение пути должно начинаться с
идентификационная переменная. [50, 60] Выражение пути должно начинаться с
идентификационная переменная. [70, 79] Выражение пути должно начинаться с
идентификационная переменная.
в org.eclipse.persistence.internal.jpa.EntityManagerImpl.createQuery (EntityManagerImpl.java:1605)
at util.DatabaseUtil.updateAnimal (DatabaseUtil.java:84)
at main.Main.main (Main.java:32) Причина: Исключение [EclipseLink-0] (Службы поддержки Eclipse -
2.5.2.v20140319-9ad6abd): org.eclipse.persistence.exceptions.JPQLException Exception
Описание: синтаксический анализ ошибок [ОБНОВЛЕНИЕ PetHospital.Animal SET
animalName =: name, animalType =: type, animalAge =: age WHERE
idAnimal =: idToModify]. [30, 40] Выражение пути должно начинаться с
идентификационная переменная. [50, 60] Выражение пути должно начинаться с
идентификационная переменная. [70, 79] Выражение пути должно начинаться с
идентификационная переменная.
в org.eclipse.persistence.internal.jpa.jpql.HermesParser.buildException (HermesParser.java:155)
в org.eclipse.persistence.internal.jpa.jpql.HermesParser.validate (HermesParser.java:334)
в org.eclipse.persistence.internal.jpa.jpql.HermesParser.populateQueryImp (HermesParser.java:278)
в org.eclipse.persistence.internal.jpa.jpql.HermesParser.buildQuery (HermesParser.java:163)
в org.eclipse.persistence.internal.jpa.EJBQueryImpl.buildEJBQLDatabaseQuery (EJBQueryImpl.java:142)
в org.eclipse.persistence.internal.jpa.EJBQueryImpl.buildEJBQLDatabaseQuery (EJBQueryImpl.java:116)
в org.eclipse.persistence.internal.jpa.EJBQueryImpl. (EJBQueryImpl.java:102)
в org.eclipse.persistence.internal.jpa.EJBQueryImpl. (EJBQueryImpl.java:86)
в org.eclipse.persistence.internal.jpa.EntityManagerImpl.createQuery (EntityManagerImpl.java:1603)
... еще 2
Я хочу, чтобы при вызове этой функции в main с этими параметрами обновлялась строка SQL
новыми значениями, полученными по параметрам.