На высоком уровне у меня есть класс «MainClass», который имеет список «OtherEntity». Существуют, по существу, две таблицы соединений. В двух таблицах объединения есть метаданные в них, которые используют другие компоненты, но я не определил сущности, так как мы не нуждаемся в них за пределами операции объединения. Но в основном MainClass => TableOne => TableTwo => OtherEntityКак я могу использовать отношения OneToMany в JPA с несколькими таблицами между ними?
Моя сущность определений
@Entity
public class MainClass {
// other stuff ...
// how to?
@OneToMany
private List<OtherEntity> otherEntities;
}
@Entity
public class OtherClass { // other stuff ... }
Моя схема (наследство и не могут быть изменены)
table MainClass
PK id
...
table TableOne
PK id
FK main_class_id
FK table_two_id
table TableTwo
PK id
FK table_one_id
FK other_entity_id
table OtherEntity
PK id
...
Я хотел бы избежать создания объектов для TableOne и TableTwo, если можно.
Это интересная концепция. Однако не следует ли аннотировать @SecondaryTables в классе OtherEntity, чтобы он извлекал FK из других таблиц? – predhme
Ну, нужно проверить дизайн, возможно, имеет смысл иметь два смысла на одном объекте, некоторые из них и другие в другом объекте, рассмотрите ваш дизайн, чтобы применить SecondaryTables, когда у него больше смысла его иметь. Это поможет вам рассмотреть мой ответ XD – Koitoer
Я действительно ценю понимание вторичной таблицы, так как это может обеспечить использование для другой проблемы. Однако, без ведома для меня, мы имеем представление, которое обеспечивает единую таблицу. Я просто указал аннотацию joinTable на представление, и проблема решена. – predhme