:age", Member.class) .setParameter("username", username) .setParameter("age", age) .getResultList(); }"> :age", Member.class) .setParameter("username", username) .setParameter("age", age) .getResultList(); }"> :age", Member.class) .setParameter("username", username) .setParameter("age", age) .getResultList(); }">
public List<Member> findByUsernameAndAgeGreaterThen(String username, int age) {
	return em.createQuery("select m from Member m where m.username = :username and m.age > :age", Member.class)
			.setParameter("username", username)
			.setParameter("age", age)
			.getResultList();
}
@Test
public void findByUsernameAndAgeGreaterThen() {
	Member m1 = new Member("AAA", 10);
	Member m2 = new Member("AAA", 20);

	memberJpaRepository.save(m1);
	memberJpaRepository.save(m2);

	List<Member> result = memberJpaRepository.findByUsernameAndAgeGreaterThen("AAA", 15);

	assertThat(result.get(0).getUsername()).isEqualTo("AAA");
	assertThat(result.get(0).getAge()).isEqualTo(20);
	assertThat(result.size()).isEqualTo(1);
}

귀찮다.

스프링 데이터 JPA

public interface MemberRepository extends JpaRepository<Member, Long> {

	List<Member> findByUsernameAndAgeGreaterThan(String username, int age);
}

된다!...

약속된 관례를 이용해서 메소드 명을 만들면 쿼리를 생성해 준다.

문법이 틀리면 안된다.

Spring Data의 Spring Data JPA 매뉴얼을 확인하면 나온다.

Query Creation 부분을 확인하면 된다.

단점