使用Spring Boot JPA。 我有两个表与many2many关系。 我的表是:
我想从 property_tbl 获取包含全部便利设施列表中项目的项目。
我进行了查询(不确定这是否是最好的写作,但是否可行)
SELECT * from property_tbl where id in (SELECT p.id FROM property_tbl p join property_amenity_tbl pa on p.id = pa.property_id where pa.amenity_name in ('amenity_1','amenity_2'...) group by p.id HAVING COUNT(pa.amenity_name) = 2);
我想使用条件构建器获得相同的查询
@Override
public List<Property> findPropertyByParam(Params params) {
CriteriaBuilder cb = em.getCriteriaBuilder();
CriteriaQuery<Property> cq = cb.createQuery(Property.class);
Root<Property> property = cq.from(Property.class);
// add the query here
// params.getAmenities()..
List<Property> result = em.createQuery(cq).getResultList();
return result;
}
我应该如何写此标准