일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
- @MappedSuperclasss
- 즉시 로딩
- 지연 로딩
- jpa
- MySQL
- 객제지향 쿼리 언어
- 값 타입 컬렉션
- Database
- form login
- Spring Security
- 상속관계 매핑
- spring jpa
- 세션 고정 보호
- field column mapping
- 동시 세션 제어
- 양방향 매핑
- SessionManagementFilter
- orphanRemovel
- TABLE
- 기본 키 매핑
- 다대다
- 값 타입 비교
- AnonymousAuthenticationFilter
- ddl-auto
- 기본값 타입
- Remember-me
- JPQL
- concurrentsessionfilter
- 세션 생성 정책
- 임베디드 타입
- Today
- Total
목록전체 글 (38)
hoondev
일대일 관계 일대일 관계는 주 테이블과 대상테이블중에 외래키를 어디 넣을지 선택이 가능하다. 일대일 관계로 Member와 Locker를 들 수 있다. 둘다 서로를 1개씩만 가지고 있기 때문에 일대일 관계로 매핑할 수 있다. 주 테이블에 외래키 @Entity public class Member { @Id @GeneratedValue private Long id; @Column(name = "USERNAME") private String name; @OneToOne @JoinColumn(name = "LOCKER_ID") private Locker locker; … } @Entity public class Locker { @Id @GeneratedValue private Long id; @OneToOne(m..
단방향 Member @Entity public class Member { @Id @GeneratedValue private Long id; @Column(name = "USERNAME") private String name; … } Team @Entity public class Team { @Id @GeneratedValue private Long id; private String name; @OneToMany @JoinColumn(name = "TEAM_ID") // 일대다 관계 private List members = new ArrayList(); … } 일대다 관계는 다대일 관계와 반대로 일 쪽에서 외래키를 관리하는 구조이다. 문제점 테이블에서는 외래키가 항상 다 쪽에 있기 때문에 발생하는 문제점이..
다대일 관계 단방향 Member @Entity public class Member { @Id @GeneratedValue private Long id; @Column(name = "USERNAME") private String name; @ManyToOne @JoinColumn(name = "TEAM_ID") private Team team; … } Team @Entity public class Team { @Id @GeneratedValue private Long id; private String name; … } 다대일 단방향 관계에서는 member는 team을 참조할 수 있지만 team은 member를 참조할 수 없다. 외래키는 다 쪽인 member에 있다. 양방향 Member @Entity pub..
양방향 연관관계 테이블은 외래키하나로 양쪽 모두를 조회할 수 있으므로 따로 설정을 하지 않아도 양방향 연관관계이다. 하지만 객체는 양방향 연관관계 설정을 따로 해주어야 한다. Member @Entity public class Member { @Id @GeneratedValue private Long id; @Column(name = "USERNAME") private String name; @ManyToOne @JoinColumn(name = "TEAM_ID") private Team team; … } Team @Entity public class Team { @Id @GeneratedValue private Long id; private String name; @OneToMany(mappedBy = "..
단방향 연관관계 다대일 단방향 관계를 가지는 member와 team이란 객체가 있다. Member @Entity public class Member { @Id @GeneratedValue private Long id; @Column(name = "USERNAME") private String name; @ManyToOne @JoinColumn(name = "TEAM_ID") private Team team; … } Team @Entity public class Team { @Id @GeneratedValue private Long id; private String name; … } 연관관계 저장, 조회, 수정 저장할 때는 다대일 관계이므로 member객체에 setTeam을 해주면 된다. //팀 저장 Te..
기본 키 매핑 @Id @GeneratedValue(strategy = GenerationType.AUTO) private Long id; 직접할당은 @Id만 사용하면 된다. 하지만 기본키 자동생성은 몇가지 옵션들이 있다. GenerationType.AUTO: 방언에 따라 자동 지정, 기본값 GenerationType.IDENTITY: 데이터 베이스에 위임 GenerationType.SEQUENCE: 데이터베이스 시퀀스 오브젝트 사용 GenerationType.TABLE: 키 생성용 테이블 사용, 모든 DB에서 사용 IDENTITY commit시점에 INSERT SQL을 실행하지 않고 em.persist() 시점에 즉시 INSERT SQL 실행 하고 DB에서 식별자를 조회. 예시 @Entity public..
package hellojpa; import javax.persistence.*; import java.time.LocalDate; import java.time.LocalDateTime; import java.util.Date; @Entity public class Member { @Id private Long id; @Column(name = "name") private String username; private Integer age; @Enumerated(EnumType.STRING) private RoleType roleType; @Temporal(TemporalType.TIMESTAMP) private Date createdDate; @Temporal(TemporalType.TIMESTAMP)..
데이터베이스 스키마 자동 생성 jpa는 애플리케이션 실행 시점 DDL을 자동 생성한다. 이 기능은 테이블 중심에서 객체 중심으로 개발하도록 도와준다. 왜냐하면 개발자가 일일이 테이블을 생성하지 않아도 되기 때문이다. 하지만 이러한 기능은 운영 장비에는 절대로 사용하면 안된다. 개발 장비에서만 사용하자. 속성 create: 기존 테이블 삭제 후 다시 생성(CREATE + DROP) create-drop: create와 같으나 종료시점에 DROP update: 변경분만 반영(운영DB에는 사용하면 안됨) validate: 엔티티와 테이블이 정상 매핑되었는지만 확인 none: 사용하지 않음 예시 spring: jpa: hibernate: ddl-auto: create Reference https://www.in..