본문 바로가기

전체 글

(70)
[스프링] 기본키 관련 매핑 Annotation @Id 직접 Id값을 할당할때 사용 Member member = new Member(); member.setId("ID_A); @GeneratedValue 속성 IDENTITY 사용법 >> @GeneratedValue(strategy = GenerationType.IDENTITY) 데이터베이스에게 값의 생성을 위임하며, 대표적으로 MYSQL의 AUTO_INCREMENT가 있다 IDENTITY는 String 타입의 필드도 가능하지만 SEQUENCE는 문자열 타입 불가능 IDENTITY전략으로 ID값을 생성시 해당 ID값을 알 수 있는 시기는 DB에 저장된 시점이다. 하지만 영속성 컨텍스트에서 관리되기 위해서는 PK값이 필요한데 DB에 저장되기 전에는 ID값이 존재하지 않게된다. 이를 해결하기 위해 보통 T..
[스프링] 필드와 컬럼 매핑 Annotation @Entity @Entity가 붙어있는 클래스는 JPA가 관리하며, JPA를 사용해서 테이블과 매핑할 클래스에 붙게 된다. 기본 생성자가 필수적으로 있어야 한다.(public 또는 protected 생성자) final 클래스, enum, interface, inner 클래스 사용 불가 저장할 필드에 final 사용 불가 속성 name , ex) @Entity(name = "name") JPA에서 사용할 엔티티 이름을 지정하며, 디폴트값으로 해당 클래스의 이름을 그대로 사용한다. @Column 테이블의 column 매핑 속성 name , ex)@Column(name = "name") -> 테이블의 컬럼의 이름을 지정하며, 디폴트값으로는 클래스의 이름이 지정된다. insertable, updatable , ..
[스프링] 영속성 컨텍스트란 개념 엔티티를 영구 저장하는 환경 이라는 뜻이다. 엔티티 매니저를 통해 영속성 컨텍스트에 접근할 수 있다.(EntityManager.persist(entity);) 생명주기 비영속(new/transient) : 영속성 컨텍스트와는 상관없는 새로운 상태. Member member = new Member(); member.setId("member1"); member.setUserName("회원1"); 영속 : 영속성 컨텍스트에 관리되고 있는 상태, DB에는 저장되지 않는다. EntityManager em = emf.createEntityManager(); em.getTransaction().begin(); em.persist(member); // 영속 준영속 : 영속성 컨텍스트에 저장되었다가 분리된 상태, ..