В моей базе данных есть следующие таблицы:
CREATE TABLE TRD_parties (
id long NOT NULL AUTO_INCREMENT,
name varchar(255),
shortname varchar(16),
PRIMARY KEY (id)
);
CREATE TABLE TRD_funds (
id long NOT NULL AUTO_INCREMENT,
shortname varchar(16),
name varchar(255),
units float,
party_id long,
PRIMARY KEY (id),
FOREIGN KEY (party_id) REFERENCES TRD_parties(id)
);
CREATE TABLE TRD_funds_available4party (
party_id long,
fund_id long,
FOREIGN KEY (party_id) REFERENCES TRD_parties(id),
FOREIGN KEY (fund_id) REFERENCES TRD_funds(id)
);
1 Фонд принадлежит только одной Стороне, а 1 Сторона имеет список фондов.Сущности выглядят так:
public class Fund{
@Id
@GeneratedValue(strategy = GenerationType.IDENTITY)
private Long id;
...
@ManyToOne(cascade = CascadeType.ALL)//no problem with this mapping
@JoinColumn(name = "partyId")
private Party party;
@Entity
@Table(name = "TRD_parties")
public class Party{
@Id
@GeneratedValue(strategy = GenerationType.IDENTITY)
private int id;
@OneToMany(fetch = FetchType.LAZY, mappedBy="availableFunds")//this is wrong how to map it?
private List<Fund> availableFunds;
Мой вопрос похож на сущность Стороны: Как я могу использовать сопоставление, чтобы назначить Список доступных средств (описан в привязке таблицы TRD_funds_available4party) к партии?
Я нашел несколько советов здесь , но сначала я не знаю, как адаптировать этот пример к моей ситуации, а во-вторых, будет ли он работать в Hibernate 5 с Spring Boot?