Jakarta ee 如何使用jpa进行此sql查询?
我正在尝试在实体中创建查询 我在mysql数据库中有以下表格:Jakarta ee 如何使用jpa进行此sql查询?,jakarta-ee,jpa,glassfish,ejb,Jakarta Ee,Jpa,Glassfish,Ejb,我正在尝试在实体中创建查询 我在mysql数据库中有以下表格: Categorie : id, nom ... Article : num_code_barre_, categorie ... 在我的实体分类中: ... @Id @GeneratedValue(strategy = GenerationType.IDENTITY) @Basic(optional = false) @Column(name = "id") private Integer id; @Size(max
Categorie : id, nom ...
Article : num_code_barre_, categorie ...
在我的实体分类中:
...
@Id
@GeneratedValue(strategy = GenerationType.IDENTITY)
@Basic(optional = false)
@Column(name = "id")
private Integer id;
@Size(max = 30)
@Column(name = "nom")
private String nom;
...
在我的文章中:
...
@Id
@Basic(optional = false)
@NotNull
@Size(min = 1, max = 50)
@Column(name = "num_code_barre_")
private String numCodeBarre;
@Basic(optional = false)
@NotNull
@Column(name = "categorie")
private int categorie;
...
我已经在我的数据库中测试了此sql查询,它的工作如下:
SELECT c.nom , COUNT(a.numCodeBarre) FROM categorie c INNER JOIN article a ON c.id = a.categorie GROUP BY a.categorie
但当我尝试在分类实体中创建namedQuery时,我在输出中收到一个错误:“Synthax错误解析查询…”
有人知道我该怎么做吗?我不知道为什么您的SQL会导致synthax错误,但您可以尝试以下JPQL语句:
@NamedQuery(name = "Categorie.count", query = "SELECT c.nom , COUNT(a.numCodeBarre) FROM categorie as c, article as a WHERE c.id = a.categorie GROUP BY a.categorie")
“ON”不是JPA1.0或JPA2.0中JPQL FROM子句的一部分。它仅在JPA2.1中引入,我怀疑您是否在使用它,因为它尚未完全发布
@NamedQuery(name = "Categorie.count", query = "SELECT c.nom , COUNT(a.numCodeBarre) FROM categorie as c, article as a WHERE c.id = a.categorie GROUP BY a.categorie")