spring entity annotation

성민·2023년 2월 19일
0

스프링 공부

목록 보기
14/15

@Entity

JPA에서 엔티티 클래스임을 나타내기 위해 사용되는 어노테이션입니다.
해당 클래스를 데이터베이스의 테이블과 매핑하기 위해서는 반드시 @Entity 어노테이션을 추가해야 합니다.

@Table

엔티티 클래스와 매핑되는 데이터베이스 테이블을 지정하기 위해 사용되는 어노테이션입니다.
name 속성을 이용하여 테이블 이름을 지정할 수 있으며, catalog, schema, uniqueConstraints 등 다양한 속성을 설정할 수 있습니다.

@Column

엔티티 클래스의 필드와 데이터베이스 테이블의 컬럼을 매핑하기 위해 사용되는 어노테이션입니다.
name, nullable, unique, length, precision 등 다양한 속성을 설정할 수 있습니다.

@Id

엔티티 클래스의 필드 중 데이터베이스 테이블의 기본 키 역할을 수행하는 필드임을 나타내기 위해 사용되는 어노테이션입니다.
하나의 엔티티 클래스에서는 반드시 하나의 @Id 어노테이션을 가진 필드가 존재해야 합니다.

@GeneratedValue

엔티티 객체의 ID값을 자동으로 생성하기 위해 사용되는 어노테이션입니다.
GenerationType.IDENTITY, GenerationType.AUTO, GenerationType.SEQUENCE 등의 값을 설정하여 ID값을 생성할 수 있습니다.

@Temporal

JPA에서 날짜와 시간 타입을 매핑하기 위해 사용되는 어노테이션입니다.
TemporalType.DATE, TemporalType.TIME, TemporalType.TIMESTAMP 중 하나를 선택하여 매핑할 수 있습니다.

@Transient

엔티티 클래스에서 매핑하지 않을 필드를 나타내기 위해 사용되는 어노테이션입니다.
해당 어노테이션이 붙은 필드는 데이터베이스 테이블에 매핑되지 않습니다.

@ManyToMany

JPA에서 관계형 데이터베이스에서 다대다 관계를 표현하기 위해 사용되는 어노테이션입니다. 엔티티 클래스의 필드 중 양방향 매핑이 필요한 경우 사용됩니다. 대부분의 경우 연결 테이블이 필요하고, @JoinTable 어노테이션을 사용하여 연결 테이블을 지정합니다.

@OneToOne

JPA에서 관계형 데이터베이스에서 일대일 관계를 표현하기 위해 사용되는 어노테이션입니다. 엔티티 클래스의 필드 중 양방향 매핑이 필요한 경우 사용됩니다. 기본적으로 일대일 관계는 외래 키를 사용하여 구현됩니다. 반대쪽 엔티티에서는 mappedBy 속성을 사용하여 매핑합니다.

@ManyToOne

JPA에서 관계형 데이터베이스에서 다대일 관계를 표현하기 위해 사용되는 어노테이션입니다. 엔티티 클래스의 필드 중 양방향 매핑이 필요한 경우 사용됩니다. 다대일 관계는 일대다 관계와 반대 방향으로 구현됩니다. 기본적으로 외래 키를 사용하여 구현됩니다.

@OneToMany

JPA에서 관계형 데이터베이스에서 일대다 관계를 표현하기 위해 사용되는 어노테이션입니다. 엔티티 클래스의 필드 중 양방향 매핑이 필요한 경우 사용됩니다. 일대다 관계는 다대일 관계와 반대 방향으로 구현됩니다. 반대쪽 엔티티에서는 mappedBy 속성을 사용하여 매핑합니다.

@JoinColumn
@JoinTable
@Inheritance
@DiscriminatorColumn
@DiscriminatorValue
@MappedSuperclass
@Embedded
@Transient
@Version
@NamedQueries
@NamedQuery
@NamedNativeQueries
@NamedNativeQuery
@SqlResultSetMapping
@SqlResultSetMappings
@Lob
@Access
@AssociationOverrides
@AttributeOverrides
@Convert
@Converts
@NamedEntityGraphs
@NamedEntityGraph
@EntityListeners
@ExcludeDefaultListeners
@ExcludeSuperclassListeners
@TableGenerator
@SequenceGenerator
@EntityResult
@FieldResult
@ConstructorResult

0개의 댓글