728x90 jpa13 Spring JPA는 처음인데요. ORM(Object-Relational Mapping) 객체-관계 매핑을 의미합니다. 이는 객체 지향 프로그래밍 언어를 사용하여 호환되지 않는 유형의 시스템 간의 데이터를 변환하는 프로그래밍 기법입니다. 즉, ORM을 통해 객체 지향 프로그램에서 사용되는 객체를 관계형 데이터베이스의 테이블에 자동으로 영속화할 수 있습니다. ORM의 주요 목적 프로그램의 객체와 데이터베이스의 테이블 사이의 매핑을 자동화하여, SQL 쿼리 없이도 데이터베이스 데이터를 쉽게 저장하고 검색할 수 있게 해줍니다. 데이터베이스와 프로그래밍 언어 사이의 패러다임 불일치를 해결합니다. 객체 지향 언어에서는 클래스와 상속과 같은 개념을 사용하지만, 관계형 데이터베이스는 테이블, 행, 열 등을 사용합니다. ORM은 이러한 두 세계 사이의.. 2024. 2. 19. Spring Data JPA , FetchType FetchType은 JPA에서 엔티티 간의 관계를 로드하는 전략을 결정하는 역할을 합니다. FetchType은 주로 @ManyToOne, @OneToMany, @OneToOne, @ManyToMany와 같은 관계를 정의하는 어노테이션에서 사용됩니다. FetchType에는 EAGER와 LAZY 두 가지 옵션이 있습니다. FetchType.EAGER (즉시 로딩): EAGER 전략은 부모 엔티티를 조회할 때 관련된 자식 엔티티를 함께 로드합니다. 이 방식은 부모 엔티티를 조회하는 즉시 관련된 자식 엔티티에 대한 데이터도 함께 로드되므로, 연관된 엔티티의 데이터를 필요로 하는 경우 효과적입니다. 그러나 즉시 로딩은 성능에 영향을 줄 수 있습니다. 관련된 엔티티가 많거나, 필요하지 않은 데이터를 로드하는 경우가.. 2023. 4. 12. Spring Data JPA, @OneToMany 무한 반복 오류 @OneToMany Entity을 RestAPI로 리턴할때 부한 반복 오류 부모-자식 엔티티 간의 양방향 관계에서 @OneToMany를 사용하면, REST API로 엔티티를 리턴할 때 순환 참조(Circular Reference) 문제가 발생할 수 있습니다. 이 문제는 JSON 직렬화 시 무한 루프를 일으키며, 결국 StackOverflowError가 발생하게 됩니다. 이 문제를 해결하기 위해선 Jackson 라이브러리의 @JsonManagedReference 및 @JsonBackReference 어노테이션을 사용하거나, @JsonIgnore 또는 @JsonView를 사용하여 직렬화를 제한할 수 있습니다. @JsonManagedReference와 @JsonBackReference 사용 @JsonManag.. 2023. 4. 12. Spring Data JPA, 페이지 및 정렬 PagingAndSortingRepository는 Spring Data JPA에서 페이징 및 정렬 기능을 제공하는 인터페이스입니다. JpaRepository는 PagingAndSortingRepository를 상속하므로, JpaRepository를 사용하면 PagingAndSortingRepository의 기능을 함께 사용할 수 있습니다. 예제를 통해 자세히 살펴보겠습니다. 엔티티 클래스: @Entity public class User { @Id @GeneratedValue(strategy = GenerationType.IDENTITY) private Long id; private String firstName; private String lastName; private String email; // 생.. 2023. 4. 10. Spring Data JPA @Query 어노테이션 @Query 어노테이션은 Spring Data JPA에서 사용자 정의 쿼리를 작성하는데 사용됩니다. @Query 어노테이션을 사용하면 레포지토리 메서드에 JPQL(Java Persistence Query Language) 또는 네이티브 SQL 쿼리를 지정하여 복잡한 조회 쿼리를 작성할 수 있습니다. 이렇게 하면 기본 제공되는 메서드 이름 기반의 쿼리를 사용할 수 없는 경우에도 데이터를 조회할 수 있습니다. 예제를 통해 자세히 살펴보겠습니다. 엔티티 클래스: @Entity public class User { @Id @GeneratedValue(strategy = GenerationType.IDENTITY) private Long id; private String firstName; private Strin.. 2023. 4. 10. Spring Data JPA Spring Data JPA는 Java Persistence API (JPA)를 사용하여 관계형 데이터베이스에 액세스하는 방법을 간소화하는 라이브러리입니다. Spring Data JPA는 공통적으로 사용되는 CRUD(Create, Read, Update, Delete) 작업을 위한 기본 구현을 제공하며, 개발자는 몇 줄의 코드만으로 빠르게 데이터베이스와 통신할 수 있는 애플리케이션을 작성할 수 있습니다. Spring Data JPA의 주요 기능: Repository 인터페이스: JpaRepository, CrudRepository, PagingAndSortingRepository 등과 같은 인터페이스를 상속받아 커스텀 Repository 인터페이스를 생성합니다. 이러한 인터페이스는 공통적인 데이터 액세스.. 2023. 4. 10. 이전 1 2 3 다음 728x90