Notice
Recent Posts
Recent Comments
Link
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | 6 | 7 |
8 | 9 | 10 | 11 | 12 | 13 | 14 |
15 | 16 | 17 | 18 | 19 | 20 | 21 |
22 | 23 | 24 | 25 | 26 | 27 | 28 |
29 | 30 |
Tags
- find
- resource
- Windows 10
- netsh
- GIT
- xargs
- grep
- Windows
- IntelliJ
- VirtualBox
- 줄바꿈 문자
- bash
- plugin
- ssh
- web.xml
- JavaScript
- Eclipse
- 네트워크
- import
- Quartz
- port
- lsof
- vscode
- maVen
- tomcat
- 단축키
- Mac
- Source
- profile
- context
Archives
- Today
- Total
develog
Spring Data JPA 본문
MemberRepository
import org.springframework.data.jpa.repository.JpaRepository;
import org.springframework.data.jpa.repository.Query;
import org.springframework.data.repository.query.Param;
public interface MemberRepository extends JpaRepository<Member, Long> {
// 메소드 이름만 사용
List<Member> findByUsername(String username);
// Entity 리턴
@Query("select m from Member m" +
" where m.username = :username2" +
" and m.age = :age2")
List<Member> findEntity(@Param("username2") String username, @Param("age2") int age);
// 값 리턴
@Query("select m.username" +
" from Member m" +
" where m.username = :username")
List<String> findValue(@Param("username") String username);
// DTO 리턴
@Query("select new study.datajpa.dto.MemberDto(m.id, m.username, t.name)" +
" from Member m" +
" join m.team t")
List<MemberDto> findDto();
// 컬렉션 파라미터
@Query("select m from Member m where m.username in :usernames")
List<Member> findByNames(@Param("usernames") List<String> names);
// 페이징
@Query(value =
"select m from Member m" +
" where m.age >= :age" +
" order by m.username desc",
countQuery =
"select count(m) from Member m" +
" where m.age >= :age")
Page<Member> findByAge(@Param("age") int age, Pageable pageable);
// bulk update
@Modifying(clearAutomatically = true)
@Query(value = "update Member m set m.age = m.age + 1 where m.age >= :age")
int bulkUpdate(@Param("age") int age);
}
Paging Test
@Test
void paging() {
int age = 40;
int pageNo = 1;
int pageSize = 10;
PageRequest pageRequest = PageRequest.of(pageNo, pageSize);
Page<Member> memberPage = memberRepository.findByAge(age, pageRequest);
long totalCount = memberPage.getTotalElements();
int totalPage = memberPage.getTotalPages();
int pageNum = memberPage.getNumber();
int pageCount = memberPage.getNumberOfElements();
int size = memberPage.getSize();
boolean empty = memberPage.isEmpty();
boolean first = memberPage.isFirst();
boolean last = memberPage.isLast();
List<Member> members = memberPage.getContent();
System.out.println("totalCount = " + totalCount);
System.out.println("totalPage = " + totalPage);
System.out.println("pageNum = " + pageNum);
System.out.println("pageCount = " + pageCount);
System.out.println("size = " + size);
System.out.println("empty = " + empty);
System.out.println("first = " + first);
System.out.println("last = " + last);
for (Member member : members) {
System.out.println("member = " + member);
}
}
Comments