Форум программистов, компьютерный форум, киберфорум
Java: Базы данных
Войти
Регистрация
Восстановить пароль
 
7 / 7 / 2
Регистрация: 21.02.2019
Сообщений: 133
1
MySQL

Как связать два класса-сущности связью многие ко многим, если в одном из классов используется коллекция типа Map?

02.05.2020, 14:44. Просмотров 344. Ответов 1
Метки нет (Все метки)


Доброго всем времени суток. Подскажите как реализовать следующая связь между двумя классами-сущностями.
Изначально у меня имелась следующее связывание

Один класс - Cargo - сущности хранятся в таблице cargoList
Java
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
@Entity
@Table(name = "cargoList")
public class Cargo {
    public Cargo() {}
    
    @Id
    @GeneratedValue(strategy=GenerationType.SEQUENCE)
    private Long id;
    
    private String name;
    
    @ManyToMany(fetch = FetchType.LAZY)
    @JoinTable(name = "cargoShipRelation", joinColumns = @JoinColumn(name = "cargotId"), inverseJoinColumns=@JoinColumn(name = "shipId"))
    private List<Ship> ships;
 
}
Второй класс - Ship - сущности хранятся в таблице shipList
Java
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
@Entity
@Table(name = "shipList")
public class Ship {
    public  Ship() {}
    
    @Id
    @GeneratedValue(strategy=GenerationType.SEQUENCE)
    private Long id;
    
    private String name;
    
    @ManyToMany(fetch = FetchType.LAZY)
    @JoinTable(name = "cargoShipRelation", joinColumns = @JoinColumn(name = "shipId"), inverseJoinColumns = @JoinColumn(name = "cargoId"))
    private List<Cargo> cargo;
 
}
Для связи между сущностями имеется таблица cargoShipRelation. Изначально она имела 2 поля: shipId и cargoId.

Но по дальнейшей задумке в классе Ship сущности должны храниться в коллекции Map и не List в виде ключей, а в качестве значений им должно сопоставляться некоторое число (условно говоря количество груза на корабле):
Java
1
private Map<Cargo, Double> cargo;
Корректно ли я решил хранить это количество в виде дополнительного поля в таблице cargoShipRelation (с именем volume). И как в этом случае описать связь между классами?
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
02.05.2020, 14:44
Ответы с готовыми решениями:

Модель со связью многие-ко-многим
Уже голова кругом :wall: (Учусь на MVC 5) Есть класс User и Command со связью многие ко многим. ...

Отображение таблиц со связью многие ко многим
Есть две таблицы, между которыми установлена связь многие ко многим, через третью таблицу:...

Сохранение данных со связью многие-ко-многим
Здравствуйте, делаю сохранение данных, связь многие-ко-многим, то есть, например, у меня есть...

Выбрать из таблиц со связью многие ко многим
Здравствуйте! Помогите составить запрос. Суть такая: имеются две таблицы, между ними связь многие...

1
7 / 7 / 2
Регистрация: 21.02.2019
Сообщений: 133
03.05.2020, 11:10  [ТС] 2
Нашел в официальной документации как сделать связывание:
https://docs.jboss.org/hiberna... ns-indexed

Но там сказано как указать откуда брать ключи. А объекты связываемой сущности становятся значениями для этих ключей.
А возможно ли сделать наоборот, так что бы в моем случае объекты класса Cargo были ключами, а значения для них брались из таблицы cargoShipRelation.
0
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
03.05.2020, 11:10

Заказываю контрольные, курсовые, дипломные и любые другие студенческие работы здесь или здесь.

Представление данных со связью многие-ко-многим
Добрый день, форумчане! Итак, есть простенькая база данных MS ACCESS. Связи между таблицами: ...

Заполнение таблиц с связью многие-ко-многим
Есть две таблицы Artists и Performers. Между ними установлена связь многие ко многим и...

Инициализация базы данных со связью многие ко многим EF CF
Здравствуйте. задача такова: допустим, есть 3 таблицы: производителей (SAMSUNG, ASUS, ACER, HEWLETT...

Создание сущности со саязью многие ко многим
Вопросы по ado.net: 2 сущности: юзер и проект связь многие ко многим. как сделать так...

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

Entity Framework в модель не добавляется таблица со связью многие ко многим
Всем привет. Проблема в следующем, в модель представления данных Entity Framework не могу добавить...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
2
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2021, vBulletin Solutions, Inc.