[Spring JPA #2] JPA 엔티티 매핑

2021. 3. 25. 02:51 Spring Data/Spring Data JPA

| @Entity

  • 엔티티는 자바에서 객체지향적인 코드를 작성할 때 네이밍된 DB와 대응되는 클래스의 이름입니다.
  • 보통 클래스와 같은 이름을 사용하기 때문에 값을 변경하지 않습니다. 값을 변경할 때는 @Entity(name = "myAccount") 같은 형식의 어노테이션을 붙여서 변경할 수 있습니다.
  • 엔티티 이름이 DB안에 있는 Table명과 바로 대응되는 것은 아니지만 @Table 어노테이션을 통해서 특별한 정보를 추가하지 않을 경우 엔티티 이름이 바로 DB안에 있는 Table명과 대응됩니다.

| @Table

  • 테이블은 RDBMS 안의 릴레이션 스키마에 대응되는 이름을 나타냅니다.
  • @Table(name = "myAccount") 같은 형식의 어노테이션을 붙여서 엔티티와 대응되는 테이블명을 명시할 수 있습니다.

| @Id

  • 엔티티의 주키를 매핑할 때 사용합니다.
  • 자바의 모든 primitive 타입과 그 래퍼 타입을 사용할 수 있습니다.

| @GeneratedValue 

  • 주키의 생성 방법을 매핑하는 어노테이션입니다.
  • 생성 전략과 생성기를 설정할 수 있습니다. 기본 전략은 AUTO이며 DB에 따라서 주키 생성 방법에 대한 전략이 달라 질 수 있습니다.

| @Column

  • @Column은 멤버 변수와 DB Table의 컬럼에 매핑하는 어노테이션입니다.
  • @Entity 어노테이션이 붙어있는 엔티티 클래스의 멤버 변수에는 기본적으로 모두 @Column 어노테이션이 붙은 효과가 기본적으로 부여됩니다.

| @Temporal

  • @Temporal 은 시간을 나타내는 데이터를 각 DBMS에서 제공하는 시간 관련 데이터와 매핑합니다. (systimestamp date ... )

| @Transient 

  • 클래스의 멤버 변수 중 DB 컬럼과 매핑하고 싶지 않은 멤버 변수에 추가하여 매핑 대상에서 제외할 수 있습니다.

 

 

https://www.inflearn.com/course/스프링-데이터-jpa



출처: https://engkimbs.tistory.com/812?category=772527 [새로비]