Java & Spring/JPA 7

[Spring Data Jpa] 스프링 부트 페이징 처리

스프링 부트에서의 페이징 처리 Pageable : 사용자의 Http 페이징 요청 정보를 담는 인터페이스 (페이징 파라미터 정보)PageRequest : Pageable 구현체, 스프링 부트는 Http 요청에서 페이징 처리 관련 정보가 있을 때 PageRequest 객체를 생성하여 Pageable 타입으로 메서드에 바인딩한다.Page : Pageable 페이징 요청 정보를 통해 얻은 페이징 처리 결과물 // 1. Pageable 바인딩, Entity 반환@GetMapping("/members")public Page list(Pageable pageable) { Page page = memberRepository.findAll(pageable); return page;} /members?page=..

Java & Spring/JPA 2026.04.25

[Spring] JPA 5

연관 관계 연관 관계 - 단방향 매핑- 양방향 매핑 연관 관계의 주인 : 객체 간 양방향 매핑 시 연관 관계를 관리하는 주체 다중성 : N:1, 1:N, 1:1, N:M DB 테이블에서의 연관관계는 외래키 개념이 있어 항상 양방향이 된다.두 테이블을 서로 참조하기 위해서는 외래키를 이용해 JOIN으로 엮으면 된다. 객체 테이블테이블은 '외래 키'로 조인을 사용해서 연관된 테이블을 찾는다.객체는 '참조'를 이용해 연관된 객체를 찾는다. SELECT ...FROM TEAM t JOIN MEMBER m ON t.member_id = m.member_id객체와 클래스에서의 연관관계는 외래키 개념이 없으며 참조 필드를 이용해 관계를 생성할 수 있다.Team : Member = 1:NTeam 클래스에 Li..

Java & Spring/JPA 2026.03.03

[Spring] JPA 변경 감지

게시판 프로젝트 - Board 수정 상황사용자가 수정 html에서 데이터를 입력하면 백엔드에서 dto로 해당 데이터를 받아 Board 데이터를 수정한다. 1. Entity@Getter@Entity@ToString@NoArgsConstructor(access = AccessLevel.PROTECTED)public class Board { @Id @GeneratedValue(strategy = GenerationType.IDENTITY) @Column(name = "board_id") private Long id; @NotBlank private String title; @NotBlank private String content; @NotBlank priv..

Java & Spring/JPA 2026.02.13

[Spring] JPA 3

ddl-auto : JPA - DB 스키마 (테이블) 자동 생성 기능 - DDL을 애플리케이션 실행 시점에 자동 생성- 운영에서는 사용하지 않고 개발 단계에서만 사용하기 스프링부트 실행 시 매 번 적용 옵션설명비고create기존 테이블을 삭제(Drop) 후 다시 생성개발 초기 단계create-dropcreate와 같지만, 애플리케이션 종료 시 테이블을 삭제테스트 환경update변경된 부분만 반영 (기존 데이터 유지, 컬럼 추가는 가능하지만 삭제는 불가)개발 중기 단계validate엔티티와 테이블이 정상 매핑되었는지만 확인스테이징/운영none자동 생성 기능을 사용 X운영 환경 (권장)#application.propertiesspring.jpa.hibernate.ddl-auto=createspring.jpa..

Java & Spring/JPA 2026.02.05

[Spring] JPA 2

ORM : Object Relation MappingJPA의 가장 큰 특징 중 하나는 ORM 기술이라는 것이다.JPA는 Java의 객체와 DataBase의 관계 위에 세워져있는 기술이다. @Entity, @Table : 객체 & 테이블 지정 방법@Id : DB에서 PK 지정 방법@Column : Java 필드와 DB 컬럼 매핑 방법@ManyToOne, @JoinColumn : DB의 N:1 등 연관관계를 Java에 매핑하는 방법 1. @Entity, @Table@Getter@Entity @Table(name = "orders") public class Order extends BaseEntity { @Id @GeneratedValue @Column(name = "orders_id") p..

Java & Spring/JPA 2026.01.28