Query By Example
@SpringBootTest
@Transactional
public class QueryByExampleTest {
@Autowired
MemberRepository memberRepository;
@Autowired
EntityManager em;
@Test
public void basic() throws Exception {
Team teamA = new Team("teamA");
em.persist(teamA);
em.persist(new Member("m1", 0, teamA));
em.persist(new Member("m2", 0, teamA));
em.flush();
// Probe 생성
Member member = new Member("m1");
// 내부 조인으로 teamA 가능
Team team = new Team("teamA");
member.setTeam(team);
// ExampleMatcher 생성
// age 프로퍼티를 무시하도록 한다.
ExampleMatcher matcher = ExampleMatcher.matching().withIgnorePaths("age");
Example<Member> example = Example.of(member, matcher);
List<Member> result = memberRepository.findAll(example);
assertThat(result.size()).isEqualTo(1);
}
}장점
단점
Last updated