Spring

Spring JPA 저장소를 사용하여 여러 필드로 엔티티를 필터링하는 방법은 무엇입니까?

기록만이살길 2022. 12. 1. 18:05
반응형

Spring JPA 저장소를 사용하여 여러 필드로 엔티티를 필터링하는 방법은 무엇입니까?

1. 질문(문제점):

나는 플랫 웹 앱을 임대하기 위해 백엔드를 작성하고 있으며 데이터베이스에서 플랫을 필터링하는 방법을 모릅니다(예: 사용 가능한 객실, 침대, 바닥 또는 도시). 따라서 10개의 필드가 있으므로 사용자는 플랫을 필터링하기 위해 한 번의 검색으로 모든 필드를 선택할 수 있으며 한 가지 방법으로 모든 필드를 JPA 저장소에 넣고 싶었지만 그 중 5개만 사용했을 때 멈추기 시작했습니다. 더 추가할 수 없었습니다. 필드. 예를 들어 NumberOfRooms를 입력하기 시작하면 그냥 멈춘 다음 각 문자를 입력해도 멈춥니다.

1.필드 검색(필터링)에 제한이 있나요?

2. 다른 방법은 무엇입니까?(모든 것을 하나의 방법에 넣고 컨트롤러에서 사용자가 모든 필터를 사용했는지 여부를 확인하고 각 필드에서 null을 확인하고 싶었습니다.)

List<Flat> findAllByPriceBetweenAndCityAndRentORbuyAndUtilitiesBetweenAndNumberOfBedsBetweenAndNum(FastMoney less,FastMoney greater,String city,Boolean rentORbuy,int util1,int util2,int num1,int num2);

2. 해결방안:

여기에서 사용자가 항상 모든 필드를 제공하는 것은 아니므로 더 많은 동적 쿼리를 사용해야 합니다. 사양을 달성하는 가장 좋은 방법으로 사양을 권장합니다.

공식 문서에서 더 많은 정보를 찾을 수 있습니다: https://spring.io/blog/2011/04/26/advanced-spring-data-jpa-specifications-and-querydsl/

반응형