我正在尝试在我的实体中创建一个查询。
我在mysql DB中有以下表格:
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错误......”
@NamedQuery(name = "Categorie.count", query = "SELECT c.nom , COUNT(a.numCodeBarre) FROM categorie c INNER JOIN article a ON c.id = a.categorie GROUP BY a.categorie")
有人知道我该怎么做?
答案 0 :(得分:1)
“ON”不是JPA 1.0或JPA 2.0中JPQL FROM子句的一部分。它仅在JPA 2.1中引入,我怀疑你是否正在使用它,因为没有完全发布
答案 1 :(得分:0)
我不确定为什么你的SQL会导致语法错误,但你可以尝试这个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")