У меня есть следующая проблема, которую мне нужно решить. Основная проблема заключается в том, что я хочу добавить дополнительную колонку в отношение JoinTable для ManyToMany в JPA. В моем случае у меня есть следующие сущности.
Тема - это простой объект, который имеет много RemoteDocument (один RemoteDocument может ссылаться на многие темы, следовательно, это должно быть отношение ManyToMany). Объект RemoteDocument читается только потому, что он может быть прочитан только из Oracle Materialized View, но любое изменение этого материализованного представления запрещено. Поэтому я хочу сохранить заказ RemoteDocuments, связанный с какой-то темой. На самом деле я могу сделать что-то подобное с дополнительным объектом:
@Entity
public class Topic {
@Id
private Long id;
@Basic
private String name;
@OneToMany
private Set<TopicToRemoteDocument> association;
}
@Entity
public class RemoteDocument {
@Id
private Long id;
@Basic
private String description;
}
@Entity
public class TopicToRemoteDocument {
@OneToOne
private Topic topic;
@OneToOne
private RemoteDocument remoteDocument;
@Basic
private Integer order;
}
В этом случае дополнительный объект TopicToRemoteDocument помогает мне заменить ассоциацию ManyToMany с OneToMany и добавить дополнительный порядок полей.
Но я хочу иметь отношение ManyToMany, но с настроенным дополнительным столбцом в таблице соединений