select一对多查询jpql
select OneToMany query jpql
我创建了两个实体 Idee 和 Avis,它们具有 OneToMany 关系。我想 select Idee 中的集合。我尝试了这个,但它不起作用我显示了 avis 的所有 table。
SELECT avis FROM idee i JOIN i.avis avis
我该如何更正它?
这是Idee.java
@Entity
@Table(name = "idee")
public class Idee implements Serializable {
private static final long serialVersionUID = 1L;
@Id
@GeneratedValue(strategy = GenerationType.AUTO)
private int id;
@Column
private String titre;
@Column
private String description;
@Column
private String theme;
@Column
private String type;
@OneToMany(mappedBy = "idee")
private Collection<Avis> avis;
@ManyToOne
@JoinColumn(name="user_id")
private Utilisateur user;
这是Avis.java
@Entity
@Table(name = "avis")
public class Avis implements Serializable {
private static final long serialVersionUID = 1L;
@Id
@GeneratedValue(strategy = GenerationType.AUTO)
private int id;
@Column
private String commentaire;
@Column
private int score;
@Column
private Boolean signaler;
@Column
private Boolean satisfaction_utilisateur;
@ManyToOne
@JoinColumn(name = "idee_id")
private Idee idee;
@ManyToOne
@JoinColumn(name="user_id")
private Utilisateur user_avis;
您的查询不起作用的原因可能与以下原因有关:
- 在
FROM
子句中,您使用了错误的实体名称,即 idee
。你必须在那里使用的是实体的名称(你没有给出)或实体的不合格 class 名称,即 Idee
.
- 您为
i.avis
使用的标识变量与实体 class 名称相同,根据规范该名称无效,因为标识变量不区分大小写(avis == Avis
).
因此您的查询应修改为
SELECT a FROM Idee i JOIN i.avis a
我创建了两个实体 Idee 和 Avis,它们具有 OneToMany 关系。我想 select Idee 中的集合。我尝试了这个,但它不起作用我显示了 avis 的所有 table。
SELECT avis FROM idee i JOIN i.avis avis
我该如何更正它?
这是Idee.java
@Entity
@Table(name = "idee")
public class Idee implements Serializable {
private static final long serialVersionUID = 1L;
@Id
@GeneratedValue(strategy = GenerationType.AUTO)
private int id;
@Column
private String titre;
@Column
private String description;
@Column
private String theme;
@Column
private String type;
@OneToMany(mappedBy = "idee")
private Collection<Avis> avis;
@ManyToOne
@JoinColumn(name="user_id")
private Utilisateur user;
这是Avis.java
@Entity
@Table(name = "avis")
public class Avis implements Serializable {
private static final long serialVersionUID = 1L;
@Id
@GeneratedValue(strategy = GenerationType.AUTO)
private int id;
@Column
private String commentaire;
@Column
private int score;
@Column
private Boolean signaler;
@Column
private Boolean satisfaction_utilisateur;
@ManyToOne
@JoinColumn(name = "idee_id")
private Idee idee;
@ManyToOne
@JoinColumn(name="user_id")
private Utilisateur user_avis;
您的查询不起作用的原因可能与以下原因有关:
- 在
FROM
子句中,您使用了错误的实体名称,即idee
。你必须在那里使用的是实体的名称(你没有给出)或实体的不合格 class 名称,即Idee
. - 您为
i.avis
使用的标识变量与实体 class 名称相同,根据规范该名称无效,因为标识变量不区分大小写(avis == Avis
).
因此您的查询应修改为
SELECT a FROM Idee i JOIN i.avis a