반응형

JPA 4

Spring Data JPA란?

JPA(Java Persistence API)란? JPA(Java Persistence API)는 Java에서 ORM(Object-Relational Mapping)을 구현하기 위한 표준 인터페이스입니다. JPA를 사용하면 객체와 데이터베이스 간의 매핑을 편리하게 처리할 수 있습니다. ORM은 객체 지향 프로그래밍과 관계형 데이터베이스 간의 간격을 좁히고, 객체를 직접적으로 다룰 수 있게 해줍니다. JPA의 장점 생산성 향상: JPA는 반복적이고 번거로운 SQL 쿼리 작성을 줄여주어 개발 생산성을 향상시킵니다. 데이터베이스 관련 작업을 직접 다루지 않고 객체에 집중할 수 있습니다. 객체 지향적인 데이터베이스 접근: JPA는 객체와 데이터베이스 간의 매핑을 통해 객체 지향적인 데이터베이스 접근을 제공합니다..

개발/java 2023.05.21

Spring Data JPA 관계 매핑하기

JPA를 이용하기 위해서는 도메인 영역에 해당하는 엔티티를 정의해야 합니다. 이 엔티티는 테이블에 종속될 수도 혹은 분리해서 정의할 수도 있습니다. 엔티티 활용법에 대해서는 다음에 다시 알아보고 이번에는 관계 매핑에 대해서 알아보겠습니다. JPA의 관계 매핑은 아래와 같은 종류가 있습니다. ManyToOne OneToMany OneToOne 또한 관계 매핑된 엔티티들은 상호 관계를 모두 설정해 주어야 합니다. 예를 들어 A와 B가 ManyToOne이면 B와 A는 OneToMany 이므로 추가로 설정해 주는 방식입니다. 각 관계들의 설정 방법을 한눈에 파악할 수 있도록 예제를 만들었습니다. @Data @Entity @Builder @NoArgsConstructor @AllArgsConstructor @Ta..

개발/java 2023.05.20

QueryDsl SpringBoot JPA 레포지토리 만들기

querydsl은 JPA 쿼리를 동적 코드로써 작성할 수 있도록 도와주는 ORM 프레임워크입니다. JPA에서 기본적으로 JPQL을 사용하여 레포지토리를 정의할 수 있습니다. @Repository public class ProductRepositoryImpl implements ProductRepository { @PersistenceContext private EntityManager entityManager; @Override public List findByName(String name) { String jpql = "SELECT p FROM Product p WHERE p.name = :name"; return entityManager.createQuery(jpql, Product.class) .s..

개발/java 2023.05.19

JPA 데이터 소스 여러개 적용하기

JPA에 데이터 소스를 여러개 적용하여 DB를 2개 이상 연결할 수 있습니다. 우선 설정 클래스 정의가 필요 합니다. 메인으로 사용하는 Primay 데이터 소스를 설정 한 후 그 외 데이터 소스들을 지정해 주도록 합시다. @Primay 어노테이션으로 메인 설정이 가능합니다. @Configuration @EnableTransactionManagement @EnableJpaRepositories( entityManagerFactoryRef = "firstEntityManagerFactory", transactionManagerRef = "firstTransactionManager", basePackages = { "com.hanainu.test.repository.first" } ) public class ..

개발/java 2023.05.18
반응형