250x250
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 |
Tags
- 스토어드 프로시저
- 다대다
- 비관적락
- 데코레이터
- 이진탐색
- querydsl
- fetch
- 일대다
- eager
- PS
- 스프링 폼
- CHECK OPTION
- 백트래킹
- 동적sql
- SQL프로그래밍
- 힙
- 유니크제약조건
- FetchType
- 즉시로딩
- exclusive lock
- dfs
- 낙관적락
- BOJ
- 지연로딩
- JPQL
- shared lock
- 연결리스트
- 연관관계
- 다대일
- execute
Archives
- Today
- Total
흰 스타렉스에서 내가 내리지
스프링 데이터 JPA 본문
728x90
파라미터 바인딩
public interface MemberRepository extends JpaRepository<Member, Long>{
@Query("select m from Member m where m.username = :name")
Member findByUsername(@Param("name") String username);
}
벌크성 수정 쿼리
public interface MemberRepository extends JpaRepository<Member, Long> {
@Modifying
@Query("update Product p set p.price = p.price * 1.1 where p.stockAmount < :stockAmount")
int bulkPriceUp(@Param("stockAmount") String stockAmount);
}
사용자 정의 리포지토리 구현
public interface MemberRepositoryCustom {
public List<Member> findMemberCustom();
}
public class MemberRepositoryImpl implements MemberRepositoryCustom{
@Override
public List<Member> findMemberCustom() {
return null;
}
}
public interface MemberRepository extends JpaRepository<Member, Long>, MemberRepositoryCustom {
}
도메인 클래스 컨버터 기능
@Controller
public class MemberController {
@RequestMapping("member/memberUpdateForm")
public String memberUpdateForm(@RequestParam("id") Member member, Model model){
model.addAttribute("member", member);
return "member/memberSaveForm";
}
}
HTTP 요청으로 id를 받지만 도메인 클래스 커버터가 중간에 동작해서 아이디를 회원 엔티티 객체로 변환해서 넘겨준다.
페이징과 정렬 기능
@GetMapping("/members")
public String list(Pageable pageable, Model model){
Page<Member> page = memberService.findMembers(pageable);
model.addAttribute("members", page.getContent());
return "members/memberList";
}
- page : 현재 페이지, 0부터 시작
- size : 한 페이지에 노출할 데이터 건수
- sort : 정렬 조건 정의
ex) /members?page=0&size=20&sort=name,desc&sort=address.city
@GetMapping("/members")
public String list(@PageableDefault(size = 12, sort = "name", direction = Sort.Direction.DESC) Pageable pageable, Model model){
}
ㄴ 기본값
'Spring' 카테고리의 다른 글
Transaction과 Async (0) | 2023.07.13 |
---|---|
Swagger 에서 Pageable 인터페이스의 쿼리 파라미터를 제대로 표현하지 못하는 에러 해결 (0) | 2023.05.31 |
[JPA] JPQL (0) | 2023.02.25 |
[JPA] JPQL, Criteria, QueryDSL 소개 (0) | 2023.02.25 |
[JPA] 값 타입2 - 값 타입 컬렉션 (0) | 2023.02.19 |