首页 > 解决方案 > 为未定义主键但已创建唯一索引的表创建 JPA 模型类

问题描述

为未定义主键但已创建唯一索引的表创建 JPA 模型类。

例如,有一个表 popular_item 表,其中包含 itemEntityId、itemType、itCode、quantity、status、createdDate 等列。其中,如果列 itemEntityId、itemType、itCode、quantity 是唯一索引的一部分。那么如何创建模型类呢?

标签: javaspringjpaspring-data-jpa

解决方案


JPA 模型类可以如下创建,其 ID 是作为PopularItemId唯一索引一部分的列的组合

@Table(name="popular_item")
@Entity
@NoArgConstructor
@AllArgCOnstructor
PopularItem{
@EmbeddedId
@AtrributeOverride(name="itemEntityId",column=@Column(name=""))
@AtrributeOverride(name="itemType",column=@Column(name="itemType"))
@AtrributeOverride(name="itCode",column=@Column(name="itCode"))
@AtrributeOverride(name="quantity",column=@Column(name="quantity"))
private PopularItemId popularItemId;
@Column(name="status")
private boolean status;
@Column(name="created_date")
private LocalDate createdDate;
}
@AllArgsConstructor
@NoArgConstrucotor
@Embeddable
public class PopularItemId {
private String itemEntityId;
private String itemType;
private String itCode;
private Double quantity;
}

推荐阅读