티스토리 뷰

728x90
반응형

엔티티 매핑 종류

  • 객체와 테이블 매핑 : @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 )
  • 같은 클래스 이름이 없으면 가급적 기본값을 사용
@Table : 엔티티와 매핑할 테이블 지정
속성
  • name : 매핑할 테이블 이름 , 기본값은 엔티티 이름을 사용
  • catalog : 테이터베이스 catalog 매핑
  • schema : 데이터베이스 schema 매핑
  • uniqueConstraints : DDL 생성 시에 유니크 제약 조건 생성

2.DDL 생성 기능

  • 제약 조건 추가 : 회원 이름은 필수, 10자 초과 x
    • @Column(nullable = false, length = 10)
  • 유니크 제약 조건 추가
  • @Table(uniqueConstraints = {@UniqueConstraint( name = "NAME_AGE_UNIQUE", columnNames = {"NAME", "AGE"} )}}
  • DDL 생성 기능은 DDL을 자동 생성할 떄만 사용되고 JPA의 실행 로직에는 영향을 주지 않음

예제)

 

@Entity
@Table(name="MEMBER")
public class Member{
			@Id 
			private Long id		
			@Column(name="name")
			private String username;
			private Integer age;
			@Enumrated(EnumType.STRING)
			private RoleType roleType;
			@Temporal(TemporalType.TIMESTAMP)
			private Date createDate;
			@Temporal(TemporalType.TIMESTAMP)
			private Date modifyDate;
			@Lob
			private String remark;
}

 

참고자료

https://www.inflearn.com/course/ORM-JPA-Basic/dashboard

728x90
반응형
250x250
반응형
최근에 달린 댓글
Total
Today
Yesterday
링크
«   2025/01   »
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
글 보관함