通过弹簧休息api

时间:2017-07-26 07:00:43

标签: java mysql rest spring-mvc

我必须使用条件MySQL查询从表中select获取所有数据,其中字段isdeleted = 0,location = 1。我怎样才能在存储库和访问管理器中实现它。

public interface FoodCourtRepository  extends JpaRepository<FoodCourtEntity, Long> {
    List<FoodcaseEntity> findByIsdeleted(Boolean isDeleted);
}

在访问管理器中

public List<FoodcaseDO> getAllFoodCourt() {
    List<FoodcaseEntity> foodCaseList = foodcourtRepository.findByIsdeleted(false);
}

3 个答案:

答案 0 :(得分:4)

您还需要为位置添加另一个条件,例如:

public List<FoodcaseEntity> findByIsdeletedAndLocation(boolean deleted, int location);

并以false1作为参数调用它,例如:

List<FoodcaseEntity> foodCaseList = foodcourtRepository.findByIsdeletedAndLocation(false, 1);

这可以为您提供所需的结果。

<强> Updte

如果要获取多个位置的数据,则需要编写支持IN的方法,例如:

public List<FoodcaseEntity> findByIsdeletedAndLocationIn(boolean deleted, List<Integer> location);

然后像这样称呼它:

List<FoodcaseEntity> foodCaseList = foodcourtRepository.findByIsdeletedAndLocation(false, Arrays.asList(2,3,4,5));

答案 1 :(得分:1)

JPA提供@Query来编写自定义查询。您可以定义另一个名为FoodCourtRepositoryCustom的接口,并编写自定义查询,如下所示:

public interface FoodCourtRepositoryCustom {
 @Query("SELECT fe FROM FoodcaseEntity fe WHERE fe.isdeleted=?1 AND fe.location=?2 ")
 List<FoodcaseEntity> findByIsdeletedAndLocation(Boolean isDeleted, Integer location);
}

然后在您的存储库接口中扩展此接口,如下所示:

public interface FoodCourtRepository  extends JpaRepository<FoodCourtEntity, Long>, FoodCourtRepositoryCustom{
List<FoodcaseEntity> findByIsdeleted(Boolean isDeleted);
}

现在您的访问管理器中提供了方法。

public List<FoodcaseDO> getAllFoodCourt() {
List<FoodcaseEntity> foodCaseList = foodcourtRepository.findByIsdeleted(false);
List<FoodcaseEntity> foodCaseList = foodcourtRepository.findByIsdeletedAndLocation(false, 1);
}

答案 2 :(得分:0)

在存储库类中添加

List<FoodcaseEntity> foodCaseList = foodcourtRepository.findByIsdeletedAndLocation(boolean isSelected,int location);

然后你可以发送选定值和位置值。它将根据条件返回值列表。