Spring Boot 中@NaturalId 字段的索引?

问题描述 投票:0回答:1

在 Spring Boot 应用程序中,我们使用

@NaturalId
作为
isbn
字段,如下所示:

@Entity
public class Book {

    @Id
    private Long id;

    @NaturalId
    @Column(nullable = false, unique = true)
    private String isbn;

    @Column(length = 50, nullable = false)
    private String name;
}
  1. 我将使用一种方法,例如

    findByIsbn(String isbn)
    。那么,我是否需要为
    isbn
    注释的
    @NaturalId
    字段添加索引(通过注释或 sql 脚本)?

  2. 为一对多/多对一关系映射 2 个表的

    isbn
    字段是个坏主意吗?

java spring-boot hibernate spring-data-jpa entity-relationship
1个回答
0
投票

由于isbn有唯一约束,这个约束会被用作索引,所以你不需要额外的索引。

您可以在多对一关系中使用任何唯一的列,hibernate 支持它。您可以使用 @JoinColumn(referencedColumnName = "isbn") 来引用它。而且我认为这样做没有任何缺点。

© www.soinside.com 2019 - 2024. All rights reserved.