본문 바로가기

반응형

Spring/JPA

[2022-09-18] 필드와 컬럼매핑 - Enum 필드 @Enumerate(EnumType.STRING) // 값이 문자열로 저장 (enum의 이름을 저장) @Enumerate(EnumType.ORDINAL) // 값이 숫자값으로 저장(enum의 순번 값) - 날짜 필드 @Temporal : 어노테이션 사용. 값으로 @TemporalType을 넘겨준다. @TemporalType - DATE(날짜), TIME(시간), TIMESTAMP(날짜와 시간을 포함) @Lob : LargeOBject. 문자열은 CLOB, 이외엔 BLOB으로 저장된다. - CLOB : 문자 대형 객체 - BLOB : 이진 대형 객체(사진, 동영상 등) 어노테이션 설명 @Column 컬럼 매핑 @Temporal 날짜매핑 @Enumerate enum 타입 매핑 @Lob BL.. 더보기
[2022-09-13] 데이터베이스 스키마 DDL을 애플리케이션 실행 시점에 자동 생성 테이블 중심 -> 객체 중심 데이터베이스 방언을 활용해서 데이터베이스에 맞는 적절한 DDL 생성 이렇게 생성된 DDL 은 개발 장비/환경에서만 사용 생성된 DDL은 운영서버에서는 사용하지 않거나, 적절히 다듬은 후 사용 데이터베이스 스키마 자동생성 - 속성 - hibernate.hbm2ddl.auto ( hbm2ddl은 아마 hibernate model to(2) ddl 이 아닐지?) 옵션 설명 create 기존 테이블 삭제 후 다시 생성 (DROP + CREATE) create-drop create와 같으나 종료시점에 테이블 DROP update 변경 부분만 반영 (운영DB 사용 금지) validate 엔티티와 테이블이 정상 매핑 되었는지만 확인 none 사.. 더보기
[2022-07-17] 엔티티 매핑 엔티티 매핑 소개 - 객체와 테이블 매핑 : @Entity, @Table - 필드와 컬럼 매핑 : @Column - 기본 키 매핑 : @Id - 연관 관계 매핑 : @ManyToOne, @JoinColumn @Entity - @Entity가 붙은 클래스는 JPA가 관리, 엔티티라 한다. - JPA를 사용해서 테이블과 매핑 할 클래스는 @Entity 필수 - 주의 -> 기본 생성자 필수 ( 파라미터가 없는 public 또는 protected 생성자) -> final 클래스, enum, interface, inner 클래스 사용 X -> 저장할 필드에 final 사용 X @Entity 속성 정리 - name -> JPA에서 사용 할 엔티티 이름을 지정한다. -> 기본값 : 클래스 이름 그대로 사용 ( 예 :.. 더보기
[2022-07-09]영속성 컨텍스트 영속성 컨텍스트 ? - JPA를 이해하는데 가장 중요한 용어 - [엔티티를 영구히 저장하는 환경] 이라는 뜻 - 영속성 컨텍스트는 논리적인 개념 => 눈에 보이지 않는다 - 엔티티 매니저를 통해서 영속성 컨텍스트에 접근 엔티티의 생명주기 - 비영속 (new/transient) : 영속성 컨텍스트와 전혀 관계가 없는 새로운 상태 //객체를 생성한 상태(비영속) Member member = new Member(); member.setId(1L); member.setUserName("회원1"); - 영속 (managed) 영속성 컨텍스트에 관리 되는 상태 //... EntityManager em = emf.createEntityManager(); em.getTransaction().begin(); //객체를 .. 더보기

반응형