Java 多对多解释关系的HQL查询
我正在尝试为以下模型编写hql Product.javaJava 多对多解释关系的HQL查询,java,sql,hibernate,many-to-many,hql,Java,Sql,Hibernate,Many To Many,Hql,我正在尝试为以下模型编写hql Product.java @Entity public class Product implements Serializable { private static final long serialVersionUID = -3532377236419382983L; @Id @GeneratedValue(strategy = GenerationType.AUTO) private int productId;
@Entity public class Product implements Serializable {
private static final long serialVersionUID = -3532377236419382983L;
@Id
@GeneratedValue(strategy = GenerationType.AUTO)
private int productId;
@NotEmpty(message = "The product name must not be empty")
private String productName;
private String productCategory;
private String productDescription;
@ManyToMany
@JsonIgnore @JoinTable(name="PRODUCT_SUBCATEGORY",
joinColumns={@JoinColumn(name="productId")},
inverseJoinColumns={@JoinColumn(name="subCategoryId")})
private Set<SubCategory> subCategory = new HashSet<SubCategory>(); //getter setter
我想根据子类别表的子类别名称进行查询,通过product_子类别表获取产品数据。示例查询如下所示
select * from product where productid in(
select psc.productid from
subcategory sc
inner join product_subcategory psc
on sc.subcategoryid=psc.subcategoryid
where sc.subcategoryname like 'men ware%');
如何在hql中实现上述sql
多谢各位
select distinct p from Product p
join p.subCategory sc
where sc.subCategoryName like :name
select distinct p from Product p
join p.subCategory sc
where sc.subCategoryName like :name