"你好"
我正在尝试使用Hibernate更新MariaDB数据库表中的一行。如下所示:
public static void updateJPQL() {
EntityManager entmngr = JPAProvider.getEntityManager();
EntityTransaction transaction = entmngr.getTransaction();
transaction.begin();
Query query = entmngr.createQuery("UPDATE users o set o.name = 'John' where o.id =: NID");
query.setParameter("NID", 2L);
query.executeUpdate();
transaction.commit();
entmngr.close();
}
Hibernate会产生此错误:
Exception in thread "main" javax.persistence.PersistenceException: org.hibernate.sql.ast.SqlTreeCreationException: Could not locate TableGroup - NavigablePath[model.entity.Users(o)]
其他查询会执行得很好。我可以插入到我的表中,我可以提取所有的记录,但这个更新查询是个问题。
2条答案
按热度按时间3npbholx1#
需要检查并注意以下几点:
users
是否是表名,因为我们很少用小写字母开头的Java类命名?如果是,请将其更改为Map的Java类名。(同样的方法也适用于列,使用java对象字段名而不是实际的表列名引用它们)b5lpy0ml2#
这段代码也有同样的问题,db是postgresql:
我使用了依赖关系
仅更改为以下依赖关系后,所有工作正常:
也许是新版本中的一个bug,或者也许我们需要一些关于Hibernate 6.0.0.Alpha5 + Spring Data JPA 2.3.0.RELEASE的魔法。我没有找到任何信息。如果你知道一些关于这方面的信息,让我知道。