问题描述
我有一张两张桌子一样的桌子
@Entity
@Table(name = "product",uniqueConstraints=@UniqueConstraint(columnNames={"product_idn"}))
public class Product implements Serializable {
private static final long serialVersionUID = 21409635044L;
@Id
@GeneratedValue(strategy = GenerationType.IDENTITY)
private Integer id;
private String product_idn;
}
另一个表
@Entity
@Table(name = "storage")
public class Storage implements Serializable {
private static final long serialVersionUID = -67165579239L;
@Id
@GeneratedValue(strategy = GenerationType.IDENTITY)
private Integer id;
@ManyToOne(fetch = FetchType.LAZY)
@JoinColumn(name = "product_id",nullable = false)
@JsonBackReference
private Product product;
}
现在我正在从 storage 表中获取记录。应该在存储表的 product_id 上创建索引(非唯一)吗?我必须根据产品获取每个产品的存储计数/获取存储。
解决方法
只需添加@Index 注释,如下所示,它应该可以正常工作。
@Entity
@Table(name = "storage",indexes = @Index(columnList = "product_id",name = "storage_productId_index"))
public class Storage implements Serializable