如何在JPA中构造插入查询

我试图将数据插入到具有列(NAME,VALUE)的表中

Query query = em.createQuery("INSERT INTO TestDataEntity (NAME, VALUE) VALUES (:name, :value)"); query.setParameter("name", name); query.setParameter("value", value); query.executeUpdate(); 

并获得以下exception:

 ERROR org.hibernate.hql.internal.ast.ErrorCounter - line 1:42: unexpected token: VALUES 

此外,我无法使用本机查询插入记录:

 Query query = em.createNativeQuery("INSERT INTO TEST_DATA (NAME, VALUE) VALUES (:name, :value);"); query.setParameter("name", name); query.setParameter("value", value); query.executeUpdate(); 

另一个例外是抛出:

 javax.persistence.PersistenceException: org.hibernate.exception.SQLGrammarException: could not execute statement 

问题是:

  • 查询字符串有什么问题?

非常感谢。

我解决了这个问题。

根据这个 ,

JPA中没有INSERT语句。

但我可以用本机查询来解决这个问题:我错误地提出了多余的问题; 在查询结束时,通过删除它解决了问题。

我找到了两个例子,作者在本机查询中使用插入( 第一个和第二个 )。 然后,您的查询可能是:

 Query query = em.createQuery("INSERT INTO TestDataEntity (NAME, VALUE) VALUES (?, ?)"); query.setParameter(1, name); query.setParameter(2, value); query.executeUpdate(); 

尝试这个。