2025/05 7

엔티티 매핑

본 글은 https://www.inflearn.com/course/ORM-JPA-Basic/dashboard 강의를 바탕으로 작성한 글입니다. 1. 엔티티 매핑이란? JPA에서 가장 중요한 두가지중 하나인 엔티티 매핑입니다. 엔티티 매핑은 객체와 관계형 데이터 베이스를 어떻게 매핑을 해서 사용하는지에 대한 설계적인 측면에서 가장 중요하다고 할 수 있습니다. 앤티티를 매핑할 때는 다음과 같은 어노테이션을 이용하게 됩니다. 객체와 테이블 매핑 : @Entity, @Table필드와 컬럼 매핑 : @Column기본 키 매핑 : @Id연관관계 매핑: @ManyToOne, @JoinColumn 2. @Entity @Entity가 붙은 클래스는 JPA가 관리하는 엔티티 입니다. JPA를 사용해서 테이블과 매핑할 클..

준영속 상태

본 글은 https://www.inflearn.com/course/ORM-JPA-Basic/dashboard 강의를 바탕으로 작성한 글입니다. 1. 준영속 상태란영속에서 준영속으로 가는 상태를 준영속 상태라고 합니다. 영속상태에서 엔티티가 영속성 컨텍스트에서 분리가 되는 상태입니다.영속성 컨택스트가 제공하는 기능을 사용하지 못합니다.영속상태란 1차캐시에 데이터베이스 값이 올라온 상태 즉 JPA에 의해 관리받고 있는 상태라 볼 수 있습니다.준영속 상태란 이렇게 JPA에 관리받고 있는 상태에 엔티티를 관리되지 않은 상태로 빼버리는 것 입니다. 이렇게 되면 JPA가 제공하는 기능을 사용하지 못하게 됩니다. 준영속 상태로 만드는 방법은 다음과 같습니다.em.detach(entity): 특정 엔티티만 준영속 상..

플러시

1. 플러시란? 플러시란 영속성 컨텍스트의 변경 내용을 데이터 베이스에 반영하는 것 입니다.데이터베이스가 커밋이 될 때 플러시가 자동으로 호출이 됩니다. 그러면 플러시가 발생할 때 다음과 같은 일들이 발생합니다.변경감지수정된 엔티티 쓰기 지연 SQL 저장소에 등록쓰기 지연 SQL 저장소의 쿼리를 데이터베이스에 전송(등록,수정,삭제 쿼리)영속성 컨텍스트를 플러시 하는 방법에는 다음과 같은 방법이 있습니다.em.flush() - 직접 호출트랜잭션 커밋 - 플러시 자동호출JPQL 쿼리 실행 - 플러시 자동 호출예를 들어서 다음과 같은 코드를 구성해보겠습니다. try{ //영속 Member member = new Member(200L,"member200") em.persist(member); System.o..

영속성 컨텍스트

본 글은 https://www.inflearn.com/course/ORM-JPA-Basic/dashboard 강의를 바탕으로 작성한 글입니다. jpa의 내부구조가 어떻게 동작하는지 알아보기 위해 영속성 컨텍스트라는 것에 대해 이해해보겠습니다. 영속성 컨텍스트란?JPA에서 가장 중요한 것 두가지를 뽑아보라고 하면 DB의 설계와 JPA를 어떻게 매핑해서 쓸것인지 에 대한 것과 실제 JPA가 내부에서 어떻게 동작하는지에 대한 부분 입니다. 이 JPA가 내부에서 어떻게 동작하는지 자세히 알기 위해서 영속성 컨텍스트에 대해 알아보겠습니다. [ JPA엔티티 메니저와 JPA 엔티티메니저 팩토리]PA를 보통 쓰게 되면 엔티티 매너저 팩토리와 엔티티메니저를 생성하게 됩니다. 엔티티매니저 팩토리를 통해 고객의 요청이 올때..

JPA 이해하기

본 글은 https://www.inflearn.com/course/ORM-JPA-Basic/dashboard 강의를 바탕으로 작성한 글입니다. 1. JPA란?JPA는 자바 진영의 ORM 기술 표준압나다. [ORM]Object-relational mapping(객체 관계 매핑)객체는 객체대로 설계관계형 데이터베이스는 관계형 데이터베이스대로 설계ORM 프레임워크가 중간에서 매핑대중적인 언어에는 대부분 ORM기술이 존재 orm이라는 것을 사용하게 되면 객체는 객체대로 설계를 하고 관계형 데이터베이스는 관계형 데이터 베이스 대로 설계를 하게 됩니다. 그리고 중간에 ORM 프레임 워크를 통해 객체와 데이터베이스의 차이부분 만큼을 조절하여 해결을 하게 됩니다 . 이렇게 함으로써 데이터베이스의 객체설계와 java의..

객체 CRUD

본 글은 https://www.inflearn.com/course/ORM-JPA-Basic/dashboard 강의를 바탕으로 작성한 글입니다. 1. 기존 객체의 CRUDpublic class Member {private String memberId;private String name;private String tel;} 이런 member클래스가 있다고 하자 그러면 이 데이터를 조회하기 위해서는 쿼리문을 각각 다음과 같이 작성해야 한다.Insert into member(member_ID, Name, TEL) values select MEMBER_ID, NAME, TEL FROM MEMBER M UPDATE MEMBER SET … TEL = ? 근데 만약 주소 필드를 추가로 작성해야 한다면 이미 작성한 쿼..