gpt4 book ai didi

java - 选择OneToMany查询jpql

转载 作者:行者123 更新时间:2023-12-02 13:36:46 26 4
gpt4 key购买 nike

我创建了两个实体 Idee 和 Avis,它们具有 OneToMany 关系。我想在Idee中选择集合。我尝试了这个,但它不起作用,我显示了 avis 的所有表格。

从 idee i 中选择 avis 加入 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;

最佳答案

您的查询不起作用的原因可能与以下原因有关:

  1. FROM 子句中,您使用了错误的实体名称,即 idee。您必须使用实体的名称(您尚未给出)或实体的非限定类名称,即 Idee
  2. 您用于 i.avis 的标识变量与实体类名称相同,根据规范,该名称无效,因为标识变量不区分大小写 (avis = =安飞士)。

所以你的查询应该修改为

SELECT a FROM Idee i JOIN i.avis a

关于java - 选择OneToMany查询jpql,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42949639/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com