[java] Hibernate에서 인덱스(Index) 설정하는 방법은?

Hibernate에서 인덱스를 설정하는 방법은 다음과 같습니다.

  1. @Index 어노테이션 사용하기: Hibernate 5.2 버전 이후부터는 @Index 어노테이션을 사용하여 인덱스를 설정할 수 있습니다. 아래는 예제 코드입니다.
@Entity
@Table(name = "products")
@org.hibernate.annotations.Table(appliesTo = "products", indexes = {
        @Index(name = "idx_product_name", columnNames = {"name"}),
        @Index(name = "idx_product_category", columnNames = {"category"})
})
public class Product {
    // ...
}

위의 예제에서는 products 테이블에 namecategory 컬럼에 대한 인덱스를 설정하고 있습니다. @Table 어노테이션의 indexes 속성에 @Index 어노테이션을 배열로 지정하여 원하는 인덱스를 설정할 수 있습니다.

  1. schema.sql 파일에서 인덱스 생성하기: 만약 Hibernate의 어노테이션을 사용하지 않는다면, schema.sql 파일에서 직접 인덱스를 생성할 수 있습니다. 아래는 예제 코드입니다.
CREATE INDEX idx_product_name ON products (name);
CREATE INDEX idx_product_category ON products (category);

위의 예제에서는 products 테이블의 namecategory 컬럼에 대한 인덱스를 생성하고 있습니다.

이러한 방법을 사용하여 Hibernate에서 인덱스를 설정할 수 있습니다. 인덱스의 사용은 쿼리 성능을 향상시키고 데이터베이스 성능을 최적화하는 데 도움이 될 수 있습니다.