Я пытаюсь сохранить сущность, в которой одним из значений является карта.Чтобы быть более точным.У меня есть запрос @Entity, который имеет составной первичный ключ с тремя элементами.Этот первичный ключ состоит из идентификатора, пользователя и Map<EntityType, List<EntityType>>
, где первый EntityType - это выбранная служба, а соответствующее значение - список элементов, к которым будет применена служба.Ниже кода, который у меня есть, но мне не хватает аннотации, которую я должен использовать для карты.Я прочитал в Интернете, что хороший способ - это создать объект-оболочку, подобный тому, который я создал (SelectedService2MyItem), который содержит список, а затем карта представляет собой просто пару ключ-значение между двумя объектами, но я не могу заставить ее работатьи я не знаю, как поступитьКто-нибудь может мне помочь?
Запрос сущности
@Entity
public class Request {
@EmbeddedId
private RequestId id;
@Column
private String name;
@ManyToOne
@JoinColumn(name = "user_id", foreignKey = @ForeignKey(name = "FK_user_id"), nullable=false)
private User user;
//Getter, setter, constructor omitted
}
RequestId
@Embeddable
public class RequestId {
@GeneratedValue(strategy = GenerationType.AUTO)
private Long id;
@ManyToOne
@JoinColumn(name = "user_id", foreignKey = @ForeignKey(name = "FK_user_id"), nullable=false)
private User user;
private Map<ServiceOffered, SelectedService2MyItem> service2MyItem = new HashMap<ServiceOffered, SelectedService2MyItem>();
//Getter, setter, constructor omitted
}
SelectedService2MyItem
@Entity
public class SelectedService2MyItem {
@Id
@GeneratedValue(strategy = GenerationType.AUTO)
@Column(name = "id", updatable = false, nullable = false)
private Long id;
@OneToMany(mappedBy = "id")
private List<MyItem> myItemsSelected;
//Getter, setter, constructor omitted
}