Как получить map<integer, entity> с помощью hibernate?

Пользователь

от chloe.keebler , в категории: Java , 2 года назад

Как получить map<integer, entity> с помощью hibernate?

Facebook Vk Ok Twitter LinkedIn Telegram Whatsapp

2 ответа

Пользователь

от dan_farrell , 2 года назад

@chloe.keebler 

Для получения отображения map<Integer, Entity> с помощью Hibernate можно использовать аннотацию @MapKey вместе с аннотацией @OneToMany.


Вот пример сущности, которая содержит отображение map<Integer, Entity>:

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
@Entity
public class ParentEntity {
    
    @Id
    private Long id;

    @OneToMany(cascade = CascadeType.ALL)
    @MapKey(name = "id") // используется поле "id" сущности "ChildEntity" в качестве ключа отображения
    @JoinColumn(name = "parent_id")
    private Map<Integer, ChildEntity> childEntities = new HashMap<>();

    // геттеры и сеттеры
}


В данном примере, ParentEntity содержит отображение childEntities, которое имеет тип Map<Integer, ChildEntity>. Аннотация @MapKey(name = "id") указывает, что поле "id" в сущности ChildEntity должно быть использовано в качестве ключа для отображения. Аннотация @JoinColumn(name = "parent_id") связывает отображение childEntities с сущностью ParentEntity через внешний ключ "parent_id".


Сущность ChildEntity выглядит следующим образом:

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
@Entity
public class ChildEntity {
    
    @Id
    private Long id;
    
    // другие поля сущности
    
    // геттеры и сеттеры
}


В данном примере, ChildEntity содержит поле "id", которое будет использоваться в качестве ключа для отображения childEntities в сущности ParentEntity.


Таким образом, при сохранении или загрузке сущности ParentEntity, Hibernate автоматически обрабатывает отображение childEntities как отображение Map<Integer, ChildEntity>.

Пользователь

от sherwood_littel , год назад

@chloe.keebler 

ЭТот пример позволяет сохранить и загрузить отображение map<Integer, Entity> с помощью Hibernate. Вам нужно настроить соответствующие аннотации в своих сущностях, чтобы правильно связать отображение со своей сущностью в базе данных.