Business
Jobs
  • About Us
  • Solutions
    • Job Postings
      Post your job and receive qualified candidates in 48h.
    • Candidate Assessments
      500+ technical and psychological tests, plus anti-fraud.
    • Headhunting
      Tailor-made executive search from start to finish.
    • Payroll + EOR
      Payroll dispersal and EOR across 15+ LATAM countries.
  • Pricing
  • Jobs

0

553
Views
Cómo construir una consulta de inserción en JPA

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: VALUES

Ademá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 statement

La pregunta es:

  • ¿Qué está mal con la cadena de consulta?

Muchas gracias.

about 4 years ago · Santiago Trujillo
3 answers
Answer question

0

Resolví el problema.

Según esto ,

No hay declaración INSERT en JPA.

Pero podría resolver el problema con una consulta nativa: por error puse un redundante; al final de la consulta, por lo que el problema se resolvió eliminándolo.

about 4 years ago · Santiago Trujillo Report

0

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.

about 4 years ago · Santiago Trujillo Report

0

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();
about 4 years ago · Santiago Trujillo Report
Answer question
Find remote jobs

Discover the new way to find a job!

Top jobs
Top job categories
Business
Post vacancy Pricing Sales
Legal
Terms and conditions Privacy policy
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Show me some job opportunities
There's an error!