Tech Stack/JPA

[JPA] 개념노트 (3)

JPA 개념노트 3편1. 변경 감지영속 상태 엔티티의 값 변경 시 update SQL 자동 생성 가능@Transactionalpublic void changeName(Long id) { Member member = em.find(Member.class, id); member.setName("park");}2. 변경 감지 조건 엔티티가 영속 상태여야 함 트랜잭션 안에서 동작함 flush 또는 commit 시점에 반영됨3. merge준영속 엔티티를 병합할 때 사용4. flush영속성 컨텍스트의 변경 내용을 DB에 반영em.persist(member);em.flush();flush 후에도 commit 전이면 rollback 가능5. 준영속영속성 컨텍스트 관리 대상에서 분리된 상태em.detac..

[JPA] 개념노트 (2)

JPA 개념노트 2편1. 엔티티 매핑 기본@Entity@Table(name = "member")public class Member { @Id @GeneratedValue(strategy = GenerationType.IDENTITY) private Long id; @Column(name = "username") private String name; private int age;}2. 주요 애노테이션 @Entity : 엔티티 지정 @Table : 테이블 지정 @Id : 기본키 지정 @GeneratedValue : 기본키 생성 전략 지정 @Column : 컬럼 옵션 지정3. 기본키 생성 전략3-1. IDENTITYDB가 기본키를 생성함MySQL auto_increme..

썸네일

[JPA] 개념노트 (1)

JPA 개념노트 11. JPAJPA = Java Persistence API자바 객체와 DB 테이블을 매핑하는 기술ORM 표준구현체로 Hibernate를 많이 사용함2. 기본 흐름테이블과 엔티티를 매핑함엔티티 매니저가 엔티티를 관리함영속성 컨텍스트 안에서 상태를 추적함트랜잭션 단위로 동작함3. 엔티티테이블과 매핑되는 객체@Entitypublic class Member { @Id private Long id; private String name;}4. EntityManager엔티티 저장엔티티 조회엔티티 삭제영속성 컨텍스트 관리5. 영속성 컨텍스트엔티티를 저장하고 관리하는 공간엔티티 상태를 추적함6. 엔티티 상태비영속: new로 생성한 상태영속: 영속성 컨텍스트에서 관리되는 상태준영속: 관리..