gpt4 book ai didi

mysql - EntityManager 创建查询显示意外 token :

转载 作者:可可西里 更新时间:2023-11-01 07:32:27 27 4
gpt4 key购买 nike

我正在使用 spring 和 hibernate,以及用于数据库访问的 JPG。使用 namedQuery 时出现“意外标记”错误,但如果我直接在 entityManager 的创建方法中编写查询,它会给出正确的结果。

这是我的 pojo 和检索用户名的查询:

 @NamedQueries(
@NamedQuery( name="getUserName" , query="select u.name from User u")
})

@Entity
@Table( name ="user")
public class User {
@Id
@Column( name="user_id")
private int id;
@Column( name="user_name")
private String name;
//getter setter
}

这是我要检索用户名的代码。

entityManager.createQuery("getUserName").getResultList();

它产生这个错误:

org.hibernate.hql.internal.ast.ErrorCounter: line 1:1: unexpected token: getUserName
! antlr.NoViableAltException: unexpected token: getUserName

当我在 entityManager.createQuery("write same query here ") 中编写相同的查询时,它起作用了。但是我想在命名查询中编写查询并在需要时访问它。我正在使用 spring 和 hibernate 集成。为什么 namedqueryentityManagercreatequery 方法中使用时显示未执行的 token ?

最佳答案

em.createQuery 应该接受 JPQL。你应该这样做

em.createNamedQuery("getUserName");

关于mysql - EntityManager 创建查询显示意外 token :,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36132189/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com