java Sping Boot 中@NaturalId字段的索引?

fykwrbwg  于 2023-03-28  发布在  Java
关注(0)|答案(1)|浏览(94)

在Sping 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)。那么,我需要为@NaturalId注解的isbn字段添加索引(通过annotaion或sql脚本)吗?
1.Map2个表的isbn字段以实现一对多/多对一关系是个坏主意吗?

af7jpaap

af7jpaap1#

由于isbn有唯一的约束,这个约束将被用作索引,所以你不需要额外的索引。
你可以在多对一的关系中使用任何唯一的列,hibernate支持它。你可以使用@JoinColumn(referencedColumnName =“isbn”)来引用它。我认为这样做没有任何缺点。

相关问题