Spring JPA – использование дополнительной таблицы в отношениях @ManyToManyJAVA

Программисты JAVA общаются здесь
Anonymous
Spring JPA – использование дополнительной таблицы в отношениях @ManyToMany

Сообщение Anonymous »

У меня есть такая структура базы данных:
таблицы сущностей:

Код: Выделить всё

CREATE TABLE IF NOT EXISTS city
(
city_id VARCHAR(255) PRIMARY KEY,
name    VARCHAR(255) NOT NULL
);

CREATE TABLE IF NOT EXISTS store
(
store_id VARCHAR(255) PRIMARY KEY,
name     VARCHAR(255) NOT NULL
);

CREATE TABLE IF NOT EXISTS region
(
region_id VARCHAR(255) PRIMARY KEY,
name      VARCHAR(255) NOT NULL
);

и таблицы ссылок (ассоциаций):

Код: Выделить всё

CREATE TABLE IF NOT EXISTS store_region
(
store_region_id bigserial PRIMARY KEY,
store_id        VARCHAR(255) REFERENCES store(store_id),
region_id       VARCHAR(255) REFERENCES region(region_id),
created_at      timestamp DEFAULT CURRENT_TIMESTAMP,
UNIQUE (store_id, region_id)
);

CREATE TABLE IF NOT EXISTS store_city
(
store_region_id bigint REFERENCES store_region(store_region_id),
city_id         VARCHAR(255) REFERENCES city(city_id),
created_at      timestamp DEFAULT CURRENT_TIMESTAMP,
PRIMARY KEY(store_region_id, city_id)
);
Могу ли я описать эту структуру в классах Java с помощью аннотаций Spring JPA?
Могу ли я добавить таблицу store_region в @JoinTable?
Упрощенный код для лучшего понимания:

Код: Выделить всё

public class CityModel {

@Id
private String cityId;
@Column
private String name;

@ManyToMany(cascade = CascadeType.ALL)
@JoinTable(
name = "store_city",
joinColumns = { @JoinColumn(name = "city_id") },
inverseJoinColumns = { @JoinColumn(name = "store_id") }
)
private Set storeModels = new HashSet();

}

Код: Выделить всё

public class StoreModel {

@Id
private String storeId;

@Column
private String name;

@ToString.Exclude
@ManyToMany(cascade = CascadeType.ALL)
@JoinTable(
name = "store_city",
joinColumns = { @JoinColumn(name = "store_id") },
inverseJoinColumns = { @JoinColumn(name = "city_id") }
)
private Set cityModels = new HashSet();
}
Мы хотим сохранить связь между городом и магазином в базе данных только для тех сущностей, у которых уже есть связь между магазином и регионом.

Подробнее здесь: https://stackoverflow.com/questions/787 ... lationship

Вернуться в «JAVA»