Mapping Entity Class Names to SQL Table Names with JPA

Dev.Hammy·2023년 7월 1일
0

JPA_Hibernate

목록 보기
6/14

Default Table Names

구현에 따라 JPA의 기본 테이블 이름은 달라진다. 예를 들어, Hibernate에서는 클래스 이름의 첫글자를 대문자로 변경하여 기본 테이블 이름으로 쓴다. 이는 ImplicitNamingStrategy 계약으로 결정된다.
PhysicalNamingStrategy 인터페이스로 이를 바꿀 수 있다.

Using @Table

@jakarta.persistence.Table 어노테이션과 매개변수를 활용하여 손쉽게 커스텀 SQL 테이블 이름으로 지정할 수 있다.

@Entity
@Table(name = "ARTICLES")
public class Article {
    // ...
}

예시) 테이블 이름을 final 변수로 지정하는 방법

@Entity
@Table(name = Article.TABLE_NAME)
public class Article {
    public static final String TABLE_NAME= "ARTICLES";
    // ...
}

Overwriting the Table Name in JPQL Queries

기본 JPQL 에서는 엔터티 클래스 이름을 사용한다.

select * from Article

@jakarta.persistence.Entity 어노테이션의 name 매개변수를 정의하여 변경할 수 있다.

@Entity(name = "MyArticle")

그후 JPQL을 변경한다.

select * from MyArticle

0개의 댓글