hbernate hql

aydmsdu9  于 2021-08-09  发布在  Java
关注(0)|答案(1)|浏览(316)

我有两个多对多关系的班级

@Table(name="employe")

public class Employe implements Serializable{

    @Id
    @GeneratedValue(strategy=GenerationType.IDENTITY)
    private int Id_emp;
    @Column(unique=true)
    private String username;
    @ManyToMany
    @JoinTable(name="produit_employe",joinColumns=@JoinColumn(name="id_employe"),inverseJoinColumns
            =@JoinColumn(name="id_produit"))
    private List<Produit> produits =new ArrayList<Produit>();
///}

Entity
@Table(name="Produit")
public class Produit implements Serializable {

    @Id
    private int id_produit;

    private String nom_produit;

    @ManyToMany(mappedBy="produits")
    private List<Employe> employes=new ArrayList<Employe>();

//}

如何显示为每个员工分配的产品名称。就像我用sql做的例子一样,我想把它转换成hql。

select p.nom_produit from produit_employe pe, produit p where pe.id_produit=p.id_produit AND

pe.id_employe=2
4jb9z9bj

4jb9z9bj1#

在使用hql时,我们必须考虑实体,而不是像sql中那样考虑表。
这相当于hql:

select p.nom_produit from Employe e join e.produits p where e.Id_emp = 2

我已经使用spring data jpa对其进行了测试,这是employe存储库中使用的代码:

@Query("select p.nom_produit from Employe e join e.produits p where e.Id_emp = :employeId")
List<String> getProductNameAssignedToEmployee (@Param("employeId") Integer employeId);

相关问题