Hibernate oneToMany без сопоставления или присоединения - PullRequest
0 голосов
/ 20 ноября 2018

Возможно ли добавить список сущностей в другую сущность, не имея сопоставления или joinColumn?

Что я хочу, это что-то вроде

EntityA{
@OneToMany
List<EntityX> allEntitiesX
}

Этот список должен вести себя как

Query query=session.createQuery("from EntityX"); 
List allEntitiesX=query.list();

Так что, если я загружаю EntiyA, у меня также есть доступ ко всем другим объектам EntityX (с отложенной загрузкой), не "покидая" EntityA.Из-за нашей унаследованной программы я не могу добавить новую таблицу для соединения обоих сущностей, потому что мне придется обновить все существующие данные клиентов и научить старую систему обрабатывать эту таблицу одинаково.

Если возможно, то сможетхорошо бы фильтровать по условиям.

Почему я этого хочу: в нашей системе каждый "mainEntity" может иметь свойства (EntityX).Каждая сущность свойства имеет список значений, и эти значения сопоставляются с помощью joinTable для «mainEntity».Если я хочу добавить метод setProperty (propertyName, значение), у меня есть проблема, что я не могу найти правильный propertyEntity для добавления моего значения.Установщик должен быть перемещен в место, где я могу выполнять запросы entityManager.

1 Ответ

0 голосов
/ 20 ноября 2018

Да, это возможно, но это создаст еще одну третью таблицу, но вам на самом деле не нужна третья таблица в случае onetomany и manytoone, поскольку каждая строка EntityX будет содержать один столбец для EntityA.

Самое простое сопоставление, которое вы можетесделать, как показано ниже.

EntityA{
@OneToMany(mappedBy="entityA",cascade = CascadeType.ALL,fetch = FetchType.LAZY)
List<EntityX> allEntitiesX
}

И в другом объекте

EntityX{
@ManyToOne
EntityA entityA; 
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...