728x90

JPA 5

[JPA] JPA의 다양한 연관관계 매핑

연관관계참조 다대일(@ManyToOne) [단방향, 양방향] 일대다(@OneToMany) [단방향, 양방향] 일대일(@OneToOne) [주 테이블 단방향, 양방향], [대상 테이블 양방향] 다대다(@ManyToMany) [단방향, 양방향] 다대일(@ManyToOne) - 단방향 member -> team @Entity public class Member { @Id @GeneratedValue @Column(name = "MEMBER_ID") private Long id; private String username; @ManyToOne @JoinColumn(name = "TEAM_ID") private Team team; .... } @Entity public class Team { @Id @Genera..

Database 2023.01.19

Spring Data & JPA & Hibernate 차이점

Spring Data JPA Spring Data JPA는 Spring Framework에서 제공하는 모듈 중 하나로, 개발자가 JPA를 좀 더 쉽고 편하게 사용 할 수 있도록 도와준다. 특징을 잠깐 살펴보자면, Hibernate와 같은 구현체들을 좀 더 쉽게 사용할 수 있도록 추상화한 것. JPA를 한 단계 추상화시킨 Repository 인터페이스를 제공. 개발자가 Repository 인터페이스에 정해진 규칙대로 메소드를 입력하면, Spring이 알아서 해당 메소드 이름에 적합한 쿼리를 날리는 구현체를 만들어서 Bean으로 등록. Hibernate와 Spring Data JPA를 사용하는 데에는 사실 큰 차이가 없지만 Spring Data JPA가 권장되는 이유는 크게 두 가지. 구현체 교체의 용이성 ..

[JPA] JPA 기본 시작

persistence.xml 통해 필요한 설정 정보를 관리 package jpabook.start; import javax.persistence.*; import java.util.List; /** * @author holyeye */ public class JpaMain { public static void main(String[] args) { //엔티티 매니저 팩토리 생성 EntityManagerFactory emf = Persistence.createEntityManagerFactory("jpabook"); EntityManager em = emf.createEntityManager(); //엔티티 매니저 생성 EntityTransaction tx = em.getTransaction(); //트랜..

JAVA 2021.12.21

[JPA] JPA란 무엇인가?

JPA(Java Persistence API) : 자바 진영의 ORM 기술 표준 그렇다면 ORM은? (Object Relational Mapping) ORM은 이름 그대로 객체와 관계형 데이터베이스를 매핑한다는 뜻. ORM프레임워크는 객체와 테이블을 매핑해서 패러다임의 불일치 문제를 개발자 대신 해결해준다. 왜 JPA를 사용해야 하는가? 1) 생산성 JPA를 사용하면 다음 코드처럼 자바 컬렉션에 객체를 저장하듯이 JPA에게 저장할 객체를 전달하면 된다. INSERT SQL을 작성하고 JDBC API를 사용하는 지루하고 반복적인 일은 JPA가 대신 처리해준다. jpa.persist(member);//저장 Member member = jpa.find(memberId);//조회 그렇기때문에 지루하고 반복적인 ..

JAVA 2021.12.21
728x90