异常错误代码为什么JPQL语法异常发生?
EntityManagerFactory emf = Persistence.createEntityManagerFactory("jpabook");
EntityManager em = emf.createEntityManager();
EntityTransaction tx = em.getTransaction();
tx.begin();
TypedQuery<Member> query = em.createQuery("select m from Member m",Member.class);
List<Member> memberList = query.getResultList();
实体类
@Entity
@Table(name="MEMBER")
public class Member {
@Id
@Column(name="MEMBER_ID")
private String id;
@Column(name="USERNAME")
private String username;
@ManyToOne
@JoinColumn(name="TEAM_ID", referencedColumnName = "TEAM_ID")
private Team team;
public Member() {
}
public Member(String id, String username) {
this.id = id;
this.username = username;
}
public String getId() {
return id;
}
public Member setId(String id) {
this.id = id;
return this;
}
public String getUsername() {
return username;
}
public Member setUsername(String username) {
this.username = username;
return this;
}
public Team getTeam() {
return team;
}
public Member setTeam(Team team) {
this.team = team;
team.getMembers().add(this);
return this;
}
@Override
public String toString() {
return "Member{" +
"id='" + id + '\'' +
", username='" + username + '\'' +
", team=" + team +
'}';
}
}
异常消息
java.lang.IllegalArgumentException: org.hibernate.hql.internal.ast.QuerySyntaxException: unexpected token: Member near line 1, column 15 [select m from Member m]
的pom.xml
<dependency>
<groupId>org.hibernate</groupId>
<artifactId>hibernate-entitymanager</artifactId>
<version>4.3.10.Final</version>
</dependency>
我不知道为什么会出现这种异常,因为语法看起来好。我们正在使用JPA作为一个团队项目。但上述问题仅限于一些团队成员。我不知道什么样的环境会影响这种例外。
我知道Hibernate支持JPQL标准。
https://stackoverflow.com/questions/33808306/org-hibernate-hql-internal-ast-querysyntaxexception-unexpected-token-near-li。你试试这个。 你应该省略。选择m –
看起来像你的'成员'类没有映射。向我们展示您的映射配置。 – talex
@talex除了实体类的注解之外,还需要什么其他映射? – YunjinJang