단일 테이블이란? 한마디로 한 테이블에 다 선언하는 방법 사용 어노테이션 @Inheritance(strategy = InheritanceType.SINGLE_TABLE) 상속관계 예시) Item class를 Album,Movie.Book이 상속을 받고있는 경우이다. 왼쪽 item 테이블을 보면 Album,Movie.Book 3개의 객체 내용이 한 테이블에 포함되어있다. 각각의 Album,Movie.Book 클래스를 확인해 보자. 사용 어노테이션 @Inheritance(strategy=InheritanceType.SINGLE_TABLE) @DiscriminatorColumn(name=””) @DiscriminatorValue(””); @DiscriminatorColumn 상속에 해당하는 부모클래스에 지정하..
양방향 매핑의 의미 양방향 매핑이란 두 엔티티 간에 서로 관계를 가진다는 의미를 가진다 예시) Member 테이블과 Team 테이블 관계 양방향 매핑 Member 엔티티는 단방향과 동일 @Entity public class Member { @Id private Long id; @Column(name="USERNAME") private String name; @ManyToOne // 다 대 1 (Team 하나에 여러 Member 가 들어간다) @JoinColumn(name="TEAM_ID") private Team team; } Team 엔티티에는 컬렉션을 추가 @Entity public class Team{ @Id private Long id; private String name; @OneToMany(m..
Spring Mybatis 를 주로 사용하다가 Spring JPA를 공부하면서 이들의 차이점이 어떤건지 궁금하여 작성한다. 간략하게 말하자면 둘다 해보면서 느낀 차이점은 확실히 있었다. Mybatis 일때는 자바의 본 아이덴티티인 객체가 주가 되는 느낌이 아니었지만 확실히 JPA를 사용해보면서 Mybatis보다 객체가 주가된다는 느낌을 더 크게 받았다. 과연 이 이유는 무엇일까? 예시) 테이블 관계 테이블에 맞추어진 모델링 예시) @Entity public class Member { @Id private Long id; @Column(name="USERNAME") private String name; @Column(name="TEAM_ID") //FK 역할 private Long teamId; } @En..
자주 사용할 만한 매핑 어노테이션 @Column 컬럼 매핑 @Temporal 날짜 타입 매핑 @Enumerated enum 타입 매핑 @Lob BLOB, CLOB 매핑 @Transient 특정 필드를 컬럼에 매핑하지 않음(매핑 무시) hibernate.hbm2ddl.auto 에서 제공 @Column 속성 설명 기본값 name 필드와 매핑할 테이블의 컬럼 이름 객체의 필드 이름 insertable, updatable 등록,변경 가능 여부 TRUE nullable(DDL) null 값의 허용 여부를 설정한다.false 로 설정하면 DDL 생성 시에 not null 제약 조건이 붙는다. unique(DDL) @Table의 uniqueConstraints와 같지만 한 컬럼에 간단히 유니크 제약조건을 걸 때 사용..
엔티티 매핑 종류 객체와 테이블 매핑 : @Entity, @Table 필드와 컬럼 매핑 : @Column 기본 키 매핑 : @Id 연관관계 매핑 : @ManyToOne,@OneToMany, @JoinColumn 1.객체와 테이블 매핑 @Entity : Entity가 붙은 클래스는 JPA가 관리, 엔티티라 한다. -> JPA를 사용해서 테이블과 매핑할 클래스는 @Entity가 필수 주의 기본 생성자 필수(파라미터가 없는 public 또는 private 생성자) final 클래스 , enum, interface,inner 클래스 사용 x 저장할 필드에 final 사용 x 속성 : name JPA에서 사용할 엔티티 이름 지정 기본값 : 클래스 이름을 그대로 사용(예 : class Member → Member ..
EntitiyManager(엔티티 매니저) → 영속성 컨텍스트를 관리 EntityManager.persist(entity) → 엔티티를 영구 저장하는 행위 엔티티의 생명주기 비영속(new/transient) → 영속성 컨텍스트와 전혀 관계가 없는 새로운 상태 영속(managed) → 영속성 컨텍스트에 관리되는 상태 준영속(detached) → 영속성 컨텍스트에 저장되었다가 분리된 상태 삭제 (removed) → 영속성 컨텍스트에서 삭제된 상태 코드로 보는 엔티티 생명주기 비영속 Member member = new Member(); // 비영속 상태 member.setId("member1"); member.setUsername("회원1"); 영속 Member member = new Member(); // ..
- Total
- Today
- Yesterday
- Java
- Cache
- Quartz
- 캘린더
- MySQL
- 알고리즘
- Lock
- 컨테이너
- spring
- ncp
- 권한
- dfs
- 캐시
- 이미지
- 도커
- docker
- centos7
- 격리수준
- dockerfile
- 정의
- 개념 이해하기
- mybatis
- 리눅스
- leatcode
- 스케줄러
- insert
- 네이버 클라우드
- LocalDate
- Linux
- hazelcast
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | |||
5 | 6 | 7 | 8 | 9 | 10 | 11 |
12 | 13 | 14 | 15 | 16 | 17 | 18 |
19 | 20 | 21 | 22 | 23 | 24 | 25 |
26 | 27 | 28 | 29 | 30 | 31 |