>

사람을 모델링하는 간단한 테이블이 있습니다 :

ID   |   AGE   |   NAME   |
---------------------------
1    |   40    |   Peter  |
---------------------------
2    |   39    |   John   |
---------------------------
3    |   40    |   Lora   |
---------------------------
4    |   40    |   Mark   |
---------------------------
5    |   38    |   Anna   |
---------------------------

반복없이 다른 연령대를 포함하는 정수 목록을 반환하는 메소드를 원합니다.이 경우 결과는 [38,39,40]입니다.

있어 :

List<Integer> findDistinctAge();

하지만 작동하지 않습니다. @Query 를 사용할 수 있다는 것을 알고 있습니다  테이블에서 쿼리를 지정하는 메소드 서명 위의 주석. 그러나 나는 그것을 사용하고 싶지 않고 JPA 구문을 사용하고 싶기 때문에 메소드의 이름이 쿼리를 정의합니다.

도움을 주셔서 감사합니다.


  • 답변 # 1

    `List<person> findDistinctAge();`
    
    

    작동해야합니다. 그렇지 않으면 전체 코드를 게시하십시오.

  • 답변 # 2

    메소드 이름에 "By"를 추가해야합니다. 이렇게하면 나이가 다른 개인 목록이 표시됩니다.

    List<person> findDistinctByAge();

    person.age 를 사용할 수 있습니다  추가 통화에서 매개 변수를 입력하거나 개인 목록에서 새 목록을 작성하십시오. 나이 목록을 반환하는 직접적인 방법을 사용할 수 없다고 생각합니다.

  • 답변 # 3

    투영을 사용하면 트릭을 시도 할 수 있습니다.

    public interface OnlyAge {
        Integer getAge();
    }
    
    
    List<OnlyAge> findDistinctBy();
    
    

관련 자료

  • 이전 java - FrameGrabber NullPointerException
  • 다음 android - 자바 - 커서 반환 null