설명JpaRepository 및 오브젝트의 중첩 목록으로 검색하는 방법은 무엇입니까?
는 PersonRepository
및 Person
기업, Person
클래스는 List<Qualification>
이 포함되어 있습니다. Qualification
클래스에는 3 개의 간단한 필드가 있습니다.
나는 사용자 정의 방식에 @Query
주석을 추가하고 결과를 얻을 수 JPQL을 사용하려고했지만, 그 자체가 List<Qualification>
대신 Qualification
의 단순한 필드 포함 저장소로 Qualification
클래스 필드는 JPQL에 조작을 위해 사용할 수 없었습니다.
이러한 자격의 중첩 필드는 어떻게 검색합니까?
쿼리 지금은 자격의 experienceInMonths보다 큰 3 이하 9 및 자격의 이름 필드 = '자바'를 어디 사람 개체의 목록을 찾을 필요가있다.
코드
Person.java
@Data
@Entity
public class Person {
@Id
@GeneratedValue(strategy = GenerationType.IDENTITY)
private String id;
@NotEmpty
@Size(min = 2)
private String name;
@NotEmpty
@Size(min = 2)
private String surname;
@ElementCollection(targetClass = java.util.ArrayList.class, fetch = FetchType.EAGER)
private List<Qualification> qualifications = new ArrayList<>();
}
PersonRepository.java
@Repository
public interface PersonRepository extends JpaRepository<Person, String> {
}
Qualification.java
@Data
@AllArgsConstructor
public class Qualification implements Serializable {
@Id @GeneratedValue
private String id;
private String name;
private String experienceInMonths;
}
편집 :this post이 중복되지 않습니다. 여기에 중첩 된 개체 모음이 있습니다. 단일 참조 만이 아닙니다.
의 사용 가능한 복제 [스프링 데이터 JPA 찾을 포함 된 개체 속성에 의해] (HTTPS를 : //stackoverflow.com/questions/24441411/spring-data-jpa-find-by-embedded-object-property) –
게시물 편집에서 언급했듯이이 질문은 제안 된 답변과 일치하지 않습니다. 붙여 넣은 코드에서 볼 수 있듯이 객체 중 하나만 아니라 객체의'List'에 문제가 있습니다. – DevDio