Создание класса модели JPA для таблицы, в которой не определен первичный ключ, но создан уникальный индекс

#java #spring #jpa #spring-data-jpa

Вопрос:

Создание класса модели JPA для таблицы, в которой не определен первичный ключ, но создан уникальный индекс .

Например, существует таблица popular_item, в которой есть такие столбцы,как itemEntityId, ItemType,itCode, количество, статус, дата создания. Среди них, если столбцы itemEntityId, ItemType,itCode, количество являются частью уникального индекса . Тогда как создать класс модели ?

Ответ №1:

Класс модели JPA может быть создан, как показано ниже, с идентификатором, 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;
}