如何使用Hibernate通过另一个属性的属性进行搜索?

时间:2014-12-09 18:26:03

标签: java hibernate

我有PlaceDTO和CategoryDTO,它们在PlaceCategoryDTO中连接(多对多)。

public class PlaceCategoryDTO implements Serializable{

private Long id;
private Long categoryID;
private Long placeID;
private CategoryDTO category;
private PlaceDTO place;
//getters and setters
}

我有PlaceCategoryDAO,我想通过两个属性进行搜索。一个是categoryID,另一个是PlaceDTO(区域)的属性。对于按categoryID和placeID搜索,我在PlaceCategoryDAO中使用此方法:

public class PlaceCategoryDAO extends GenericHibernateDAO<PlaceCategoryDTO,Long>{
  public  List<PlaceCategoryDTO> findByParameters(Long placeID, Long categoryID)
    {
      List<Criterion> criteria = new ArrayList<Criterion>();
      if (placeID != null)
        {
          criteria.add(Restrictions.eq("placeID",placeID));  
        }
      if (categoryID != null)
        {
          criteria.add(Restrictions.eq("categoryID",categoryID));  
        }
      return findByCriteria(criteria);
    }
}

我想知道我是否可以使用place.region而不是placeID进行搜索。

1 个答案:

答案 0 :(得分:1)

是的,你可以,见this。只需添加另一个标准和限制。