Spring JPA를 사용할경우
public interface MemberRepository extends JpaRepository<Member, Long> {
List<Member> findByAgeGreaterThanEqual(int age);
}
NativeQuery를 사용할경우
public interface MemberRepository extends JpaRepository<Member, Long> {
@Query(value = "SELECT * FROM member WHERE age >= ?1", nativeQuery = true)
List<Member> findByAgeGreaterThanEqualNative(int age);
}
JPQL을 사용할경우
public interface MemberRepository extends JpaRepository<Member, Long> {
@Query("SELECT m FROM Member m WHERE m.age >= :age")
List<Member> findByAgeGreaterThanEqualJPQL(@Param("age") int age);
}
QueryDSL을 사용할경우
@Repository
public class MemberCustomRepositoryImpl extends QuerydslRepositorySupport implements MemberCustomRepository {
public MemberCustomRepositoryImpl() {
super(Member.class);
}
@Override
public List<Member> findByAgeGreaterThanEqual(int age) {
QMember member = QMember.member;
return from(member).where(member.age.goe(age)).fetch();
}
}