Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/jpa/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Hibernate JPA createQuery/TypedQuery,无法识别我的表_Hibernate_Jpa - Fatal编程技术网

Hibernate JPA createQuery/TypedQuery,无法识别我的表

Hibernate JPA createQuery/TypedQuery,无法识别我的表,hibernate,jpa,Hibernate,Jpa,这是我正在调用的函数: public List<Student> getAllStudents() { TypedQuery<Student> query = entityManager.createQuery("SELECT e FROM Student as e", Student.class); List<Student> students = query.getResultList(); ret

这是我正在调用的函数:

    public List<Student> getAllStudents() {
        TypedQuery<Student> query = entityManager.createQuery("SELECT e FROM Student as e", Student.class);
        List<Student> students = query.getResultList();

        return students;
    }

问题解决了!谢谢你们的帮助,还是个新手,犯了一些愚蠢的错误

您的查询应该如下所示: “从学生e中选择e”

请注意,实体是单数的(不是学生),您需要添加“FROM”,而不需要包含单词“AS”

我从本教程中学习了JPA:

您可以在此处查看JPQL示例: 所以我解决了这个问题

代码本身是正确的,但是Intellij使用了错误的标准JPA框架配置。在实现了正确的一个之后,所有的错误都消失了

我改变的另一件事是将这一行添加到我的persistence.xml中,以确保预加载为真:

<property name="openjpa.MetaDataRepository" value="Preload=true" />


感谢所有回答这个问题的人

我在Student类中指定表名为Students,因此我的查询在Student中搜索没有任何意义@Table(name=“Students”)公共类Student{JPQL不是SQL。JPQL将类映射到表中,在JPQL查询中,您引用的是类名而不是表名。@AdamLesiak如果我将Students更改为Studenthave您从查询中删除了单词“as”?as没有错,它只是不需要,但可以用于澄清代码。(在一个朋友给我的JPA课程中发现)错误(
选择e学生作为e
)和代码(
选择e学生作为e
)不一致。用你的实际情况重写你的帖子doing@DN1更新了,没有更改问题更新了什么?!你说你正在执行
SELECT e FROM Student as e
,但实际上你正在执行
SELECT e Student as e
(这是非法语法,原因是错误消息说的).你还说你正在使用Hibernate(标签),但错误信息是OpenJPA!!!至于你为什么要“从google/stackoverflow中学习[JPA]”当有很多教程和文档的时候…它开始是从google/stackoverflow学习,现在使用的是一本friends,uni book。书名是JPA/Hibernate,所以我认为我使用的是Hibernate。不必这么直截了当,谢谢你的回复问题已经解决了@DN1
<property name="openjpa.MetaDataRepository" value="Preload=true" />