Estoy tratando de insertar datos en una tabla que tiene columnas (NOMBRE, VALOR) con
Query query = em.createQuery("INSERT INTO TestDataEntity (NAME, VALUE) VALUES (:name, :value)"); query.setParameter("name", name); query.setParameter("value", value); query.executeUpdate();y obteniendo la siguiente excepción:
ERROR org.hibernate.hql.internal.ast.ErrorCounter - line 1:42: unexpected token: VALUESAdemás, tampoco puedo insertar un registro usando una consulta nativa:
Query query = em.createNativeQuery("INSERT INTO TEST_DATA (NAME, VALUE) VALUES (:name, :value);"); query.setParameter("name", name); query.setParameter("value", value); query.executeUpdate();Se está lanzando otra excepción:
javax.persistence.PersistenceException: org.hibernate.exception.SQLGrammarException: could not execute statementLa pregunta es:
Muchas gracias.
Encontré dos ejemplos en los que el autor usa la inserción en una consulta nativa ( primero y segundo ). Entonces, tu consulta podría ser:
Query query = em.createQuery("INSERT INTO TestDataEntity (NAME, VALUE) VALUES (?, ?)"); query.setParameter(1, name); query.setParameter(2, value); query.executeUpdate();Prueba esto.
Pude hacer esto usando lo siguiente: solo tenía un nombre de tabla Bike con 2 campos de identificación y nombre. Utilicé lo siguiente para insertar eso en la base de datos.
Query query = em.createNativeQuery("INSERT INTO Bike (id, name) VALUES (:id , :name);"); em.getTransaction().begin(); query.setParameter("id", "5"); query.setParameter("name", "Harley"); query.executeUpdate(); em.getTransaction().commit();