这是我打电话的功能:
public List<Student> getAllStudents() {
TypedQuery<Student> query = entityManager.createQuery("SELECT e FROM Student as e", Student.class);
List<Student> students = query.getResultList();
return students;
}
这是我的学生班:
@Entity
@Table(name = "Students")
public class Student {
@Id
@GeneratedValue(strategy = GenerationType.IDENTITY)
private int id;
@Column(unique = true)
private String studentNumber;
private String firstName;
private String lastName;
private boolean uploaded;
private boolean downloaded;
private boolean active;
// Default constructor
public Student() {
}
}
问题解决了!感谢帮助的人,仍然是一个新人,并犯了一些愚蠢的错误!
答案 0 :(得分:1)
您的查询应如下所示: “选择e FROM Student e”
请注意,该实体是单数(不是学生),您需要广告“FROM”,而且您不需要包含“AS”这个词。
我从本教程中学习了JPA:https://docs.oracle.com/javaee/7/tutorial/partpersist.htm#BNBPY
您可以在此处查看JPQL示例: https://docs.oracle.com/javaee/7/tutorial/persistence-querylanguage002.htm#BNBRG
答案 1 :(得分:0)
所以我解决了这个问题。
代码本身是正确的,然而Intellij使用了错误的标准JPA Framework配置。在实施正确的错误后,所有错误都消失了。
我改变的另一件事是将此行添加到我的persistence.xml中,以确保preload为true:
<property name="openjpa.MetaDataRepository" value="Preload=true" />
感谢所有回复此问题的人!