在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
字段以实现一对多/多对一关系是个坏主意吗?
1条答案
按热度按时间af7jpaap1#
由于isbn有唯一的约束,这个约束将被用作索引,所以你不需要额外的索引。
你可以在多对一的关系中使用任何唯一的列,hibernate支持它。你可以使用@JoinColumn(referencedColumnName =“isbn”)来引用它。我认为这样做没有任何缺点。