有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

通过spring的JavaRESTAPI

我必须使用条件select查询从表中的MySQL获取所有数据,其中字段isdeleted=0,location=1。如何在存储库和access manager中实现这一点

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

在访问管理器中

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

共 (3) 个答案

  1. # 1 楼答案

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

    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));
    
  2. # 2 楼答案

    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);
    }
    

    现在,方法在access manager中可用

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

    在存储库类add中

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

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