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
- for문
- Java데이터 타입
- 인텔리제이 한글 깨짐 해결법
- OPP개념
- While
- multi-threading
- 메서드 오버로딩
- 시스템 환경 변수 편집
- JAVA기초
- Java
- java변수
- this예약어
- 반복문
- 자바 멀티스레딩
- IntelliJ IDEA
- JAVA객체지향
- Thread
- 연관관계
- 인텔리제이 기초 설정
- continue문
- 집합관계
- 메서드
- function
- 접근제어지시자
- 컴파일
- 생성자
- break문
- 상수
- 포함관계
- 형 변환
Archives
- Today
- Total
최원종의 개발 블로그
V2(PersistentContext) 게시글 목록 보기 - Persistence Context와 JPQL 활용 본문
Spring boot 입문
V2(PersistentContext) 게시글 목록 보기 - Persistence Context와 JPQL 활용
chl6698 2026. 5. 7. 13:57EntityManager( 엔티티를 관리하는 실질적인 관리자)
영속성 컨텍스트에 접근하고 엔티티의 생명주기를 관리하는 가장 중요한 인터페이스
EntityManager 핵심 메서드
| 메서드 | 용도 | 사용법 | 주의사항 |
| persist(entity) | 생성 - 새 엔티티 저장 | em.persist(board); | @Transactional 필수 |
| find(Class, id) | 조회 - ID로 엔티티 찾기 | Board board = em.find(Board.class, 1L); | 없으면 null 반환 |
| merge(entity) | 수정 - 준영속 엔티티 병합 | Board merged = em.merge(board); | 모든 필드 덮어씀 주의 |
| remove(entity) | 삭제 - 엔티티 제거 | em.remove(board); | 영속 상태 엔티티만 가능 |
영속성 컨텍스트를 활용한 게시글 목록 조회
V2에서는 Persistence Context의 장점을 활용하여 JPQL 문법으로 게시글 목록을 조회
**V1 vs V2 조회 방식 비교:**
- **V1**: 네이티브 SQL 직접 작성 (SELECT * FROM board_tb...)
- **V2**: JPQL을 통한 객체지향적 조회 (SELECT b FROM Board b...)
BoardPersistRepository.java - 조회 기능 추가( JPQL 문법으로 변환)
// JPQL을 사용한 게시글 목록 조회
public List<Board> findAll() {
// JPQL : 엔티티 객체를 대상으로 하는 객체지향 쿼리
// Board는 엔티티 클래스 명, b 는 별칭
// 주의! 테이블 명이 아닌 클래스명(엔티티명) 사용
String jpql = """
SELECT b FROM Board b ORDER BY b.createdAt DESC
""";
List<Board> boardList = em.createQuery(jpql, Board.class).getResultList();
return boardList;
}
BoardController.java - ( boardPersistRepository - 영속성 컨텍스트를 활용한 코드로 수정)
/**
* 게시글 목록 화면 요청
* 주소설계 : http://localhost:8080/
*/
@GetMapping({"/", "index"})
public String list(Model model) {
//List<Board> boardList = boardNativeRepository.findAll();
List<Board> boardList = boardPersistRepository.findAll();
model.addAttribute("boardList", boardList);
return "board/list";
}'Spring boot 입문' 카테고리의 다른 글
| V2(PersistentContext) 게시글 삭제하기 - Persistence Context와 영속성 관리 (0) | 2026.05.07 |
|---|---|
| V2(PersistentContext) 게시글 상세보기 만들기 - Persistence Context와 1차 캐시 활용 (0) | 2026.05.07 |
| V2(PersistentContext) 게시글 작성 - PersistenceContext 활용 (0) | 2026.05.07 |
| V2(PersistentContext)-패키지 구조 변경 (0) | 2026.05.07 |
| V2(PersistentContext)- 영속성 컨텍스트 개념 정리 (0) | 2026.04.30 |
