繁体   English   中英

选择OneToMany查询jpql

[英]select OneToMany query jpql

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

从同上选择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 == Avis )。

因此,您的查询应修改为

SELECT a FROM Idee i JOIN i.avis a

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM