본문 바로가기

Spring/JPA

(3)
JPA_영속성 컨텍스트란? 스프링으로 프로젝트를 진행하면서 JPA의 영속성 컨텍스트를 개념만 알고 별도로 정리하지 않고 넘어갔다. 지금 이렇게 하나하나 개념을 정리하고 있으니 JPA 영속성 컨텍스트도 다시 한번 익히고 정리해보려고 한다. JPA를 공부하며 가장 중요하다고 생각하는 부분은 설계와 관련된 객체와 관계형 데이터베이스를 매핑하는 것(Object Relational Mapping)과 지금 정리해보려고 하는 JPA 내부 동작인 영속성 컨텍스트 이다. 1. 영속성 컨텍스트(Persistence Context)란? 엔티티를 영구 저장하는 환경 이라는 의미 EntityManager.persist(entity); 동작 실제 DB에 저장하는 것이 아니라 영속성 컨텍스트를 통해 Entity를 영속화 한다는 의미다. 조금 더 구체적으로 ..
나는 왜 JPA를 사용했을까? 항해를 진행하면서 아무렇지 않게 당연히? JPA를 사용했다. 왜 사용했는지는... 사실 처음 배웠던게 JPA다. 그러나 많은 ORM중에 나는 왜 굳이 JPA를 사용했는가?에 대해서 깊게 생각해보지 못했다. 이번 글을 작성하면서 ORM과 JPA에 대한 내용을 정리해보려고 한다. ORM(Object-Relational Mapping) 객체와 관계형 데이터베이스의 데이터를 자동으로 매핑(연결)해주는 것을 말한다. 객체 지향 프로그래밍은 클래스를 사용하고, 관계형 데이터베이스는 테이블을 사용한다. 객체 모델과 관계형 모델 간에 불일치가 존재한다. ORM을 통해 객체 간의 관계를 바탕으로 SQL을 자동으로 생성하여 불일치를 해결한다. 데이터베이스 데이터 Object 필드 객체를 통해 간접적으로 데이터베이스 데이터..
데이터 연관관계 항해 41일차 2022.02.19 1. 데이터 연관관계의 주인 테이블은 외래 키 하나로 두 테이블이 연관관계를 맺음 객체 양방향 관계는 A->B, B->A 처럼 참조가 2군데 객체 양방향 관계는 참조가 2군데 있음. 둘중 테이블의 외래 키 를 관리할 곳을 지정해야함 연관관계의 주인: 외래 키를 관리하는 참조 주인의 반대편: 외래 키에 영향을 주지 않음, 단순 조회만 가능 2. 다대일 단방향 다대일의 반대는 일대다 A,B 각 엔티티가 있다면 A는 A.b으로 B엔티티를 참조할 수 있지만 반대로 B에서 A를 참조하는 필드가 없다. 그렇기에 A와 B는 다대일 단방향 연관관계다. === A 엔티티 ==== @Entity public class A { @Id @GeneratedValue @Column(name = ..