일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
- StringUtils.hasText
- 추천 프로그램
- 스프링부트
- 함수 인자값 id
- select
- it
- js
- cmd
- 자바스크립트 인라인
- Test 룸북 사용하기
- Intellij
- 룸북
- 리눅스
- 다른사람 프로젝트 수정전 가져야할 자세
- 타임리프
- 비밀번호 변경 명령어
- 시퀀스 조회
- 설정
- linux
- 명령어
- 순서 보장
- 개발시작전 자세
- 하모니카 OS 5
- 프로젝트 클린
- #{..}
- JSON
- 추천 사이트
- BindingResult
- 타임리프와 스프링
- Java
- Today
- Total
목록◆ ORM (14)
웹개발 블로그

다대일 관계 매핑 속성설명기본값💥mappedBy연관관계의 주인 필드를 선택한다.주인아님, 읽기전용fetch글로벌 페치 전략을 설정한다.@ManyToOne=FetchType.EAGER@OneToMany=FetchType.LAZYcascade영속성 전이 기능을 사용한다. targetEntity연관된 엔티티의 타입 정보를 설정한다.이 기능은 거의 사용되지 않는다.컬렉션을 사용해도 제너릭으로 타입 정보를 알 수 있다.

다대일 관계 매핑속성설명기본값optionalfalse로 설정하면 연관된 엔티티가 항상 있어야 한다.TRUEfetch글로벌 페치 전략을 설정한다.@ManyToOne=FetchType.EAGER@OneToMany=FetchType.LAZYcascade영속성 전이 기능을 사용한다. targetEntity연관된 엔티티의 타입 정보를 설정한다. 이 기능은 거의 사용하지 않으며 컬렉션을 사용ㅎ도 제너릭으로 타입 정보를 알 수 있다.

외래 키를 매핑할 때 사용속성설명기본값💥name매핑할 외래 키 이름형식: 필드명_참조하는 테이블의 기본 키 컬럼명referencedColumnName외래 키가 참조하는 대상 테이블의 컬러명참조하는 테이블의 기본 키 컬러명foreignKey(DDL)외래 키 제약조건을 직접 지정할 수 있다.이 속성은 테이블을 생성할 때만 사용한다. uniquenullable insertableupdatablecolumnDefinitiontable@Column의 속성과 같다.
테이블로 따지면 외래키가 있는 테이블이 주인이 된다. DBMember테이블에 Team_id(FK)가 있고Team 테이블에 Team_id(PK)라고 지정되어 있다면 객체Member 객체에 Team team 필드 Team 객체에List member 필드

@Entity@SequenceGenerator(name="MEMBER_SEQ_GENERATOR", sequenceName = "MEMBER_SEQ", initialValue = 1, // initialValue : 기본값 1 allocationSize = 1) // allocationSize :기본값 50public class MemberPK { @Id @GeneratedValue(strategy = GenerationType.SEQUENCE, generator ="MEMBER_SEQ_GENERATOR" ) private Long id; //💥웬만하면 String 시퀀스 설정@..

@Column컬럼 매핑@Column(name = "name")private String username;@Temporal날짜 타입 매핑//TIMESTAMP : 날짜+시간@Temporal(TemporalType.TIMESTAMP)private Date createdDate;@Enumeratedenum 타입 매핑public enum RoleType { USER, ADMIN}@Enumerated(EnumType.STRING) //STRING으로 사용하자~private RoleType roleType;@Lob(랍)BLOB,CLOB 매핑@Lob //랍private String description;@Transient특정 필드를 컬럼에 매핑하지 않음(매핑 무시)필드 매핑X데이터베이스에 저장X, 조회X주로 메모..

객체와 테이블 매핑@Entity@Table 필드와 컬럼 매핑@Column 기본 키 매핑@Id 연관관계 매핑@ManyToOne@JoinColumn@Entity@Entity가 붙은 클래스는 JPA가 관리, 엔티티라 한다.JPA를 사용해서 테이블과 매핑할 클래스는 @Entity 필수💥주의!기본 생성자 필수(파라미터가 없는 public 또는 protected 생성자)final 클래스, enum, interface, inner 클래스 사용x저장할 필드에 final 사용 x데이터베이스 스키마 자동 생성 - 옵션DDL을 애플리케이션 실행(로딩) 시점에 자동 생성JPA는 미리 테이블을 생성하지 않아도 실행 시점에 자동 생성해준다.테이블 중심 -> 객체 중심데이터베이스 방언을 활용해서 데이터베이스에 맞는 적절한 DD..

준영속영속성 상태의 엔티티를 영속성 컨텍스트에서 분리, 영속성 컨텍스트가 제공하는 기능을 사용 못함준영속 상태로 만드는 방법• em.detach(entity) 특정 엔티티만 준영속 상태로 전환 • em.clear() 영속성 컨텍스트를 완전히 초기화테스트 케이스 작성할 때도 사용하긴 함. • em.close() 영속성 컨텍스트를 종료

flush영속성 컨텍스트의 변경내용을 데이터베이스에 반영 flush(플러시 발생)변경 감지수정된 엔티티 '쓰기 지연 SQL 저장소'에 등록쓰기 지연 SQL 저장소의 쿼리를 DB에 전송(등록/수정/삭제 쿼리)영속성 컨텍스트를 플러시하는 방법em.flush() - 직접 호출트랜잭션 커밋 - 플러시 자동 호출JPQL 쿼리 실행 - 플러시 자동 호출//저장Team team = new Team();team.setName("TeamA");em.persist(team);//비영속성Member member = new Member();member.setUsername("member1");member.setTeam(team); //(중요) jpa가 알아서 Team에서 pk를 꺼내서 fk 값에 인서트할때 사용//영속성em...