如何在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();
尝试这个。
- Hql,如何在具有一对多关系的表之间编写连接查询?
- 在Spring的Session Expiry之前执行自定义事件
- org.hibernate.PersistentObjectException:传递给持久exception的分离实体
- 为什么懒惰加载不能在一对一关联中工作?
- 如何使用Hibernate映射用户数据类型(复合类型)
- Hibernate @ElementCollection – 需要更好的解决方案
- 使用Hibernate将Oracle Date映射到Java对象
- 如何使用JPA在实体内部持久保存Map(java.util.Map)对象并确保持久性级联?
- 如何让Hibernate基于DDL / SQL脚本创建表?