[스프링] JPA와 뷰매핑

자바 플랫폼 기반에서 관계형 데이터베이스로의 데이터 접근을 지원하는 API입니다. JPA는 객체-관계 매핑(ORM)을 사용하여 개발자가 간단한 애노테이션으로 데이터베이스와 객체 간의 매핑을 정의할 수 있도록 해줍니다.

JPA와 스프링 프레임워크

뷰매핑

뷰매핑은 JPA를 사용하여 데이터베이스의 데이터를 뷰로 매핑하는 것을 의미합니다. 스프링 프레임워크에서 JPA를 이용한 뷰매핑을 구현하는 방법에 대해 알아보겠습니다.

JPA 엔티티 클래스 생성

import javax.persistence.Entity;
import javax.persistence.Id;

@Entity
public class Product {
    @Id
    private Long id;
    private String name;
    private double price;
    // getters and setters
}

위의 코드는 JPA의 엔티티 클래스인 Product를 정의한 예시입니다. @Entity 애노테이션은 해당 클래스가 JPA 엔티티임을 표시하고, @Id 애노테이션은 해당 필드가 엔티티의 식별자(primary key)임을 표시합니다.

스프링 MVC에서 JPA 뷰매핑 설정

import org.springframework.stereotype.Controller;
import org.springframework.ui.Model;
import org.springframework.web.bind.annotation.GetMapping;

@Controller
public class ProductController {

    private final ProductRepository productRepository;

    public ProductController(ProductRepository productRepository) {
        this.productRepository = productRepository;
    }

    @GetMapping("/products")
    public String listProducts(Model model) {
        model.addAttribute("products", productRepository.findAll());
        return "products";
    }
}

위의 코드는 스프링 MVC에서 JPA 뷰매핑을 설정한 예시입니다. ProductController 클래스는 /products 엔드포인트에 대한 요청을 처리하며, ProductRepository를 통해 JPA 엔티티를 조회하여 모델에 추가한 후 “products” 뷰로 반환합니다.

이렇게 JPA를 사용하여 뷰매핑을 구현함으로써 스프링 프레임워크에서 데이터베이스와의 연동을 보다 간편하게 처리할 수 있습니다. JPA를 통한 뷰매핑은 개발 생산성과 유지보수성을 향상시키는 데 도움이 됩니다.

참조: