таблицы сущностей:
Код: Выделить всё
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)
);
Могу ли я добавить таблицу 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