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
Jakarta ee 如何使用jpa进行此sql查询?_Jakarta Ee_Jpa_Glassfish_Ejb - Fatal编程技术网

Jakarta ee 如何使用jpa进行此sql查询?

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

我正在尝试在实体中创建查询

我在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 = 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")