Как сделать соединение, используя Hibernate между двумя сущностями (несвязанные сущности) - PullRequest
0 голосов
/ 09 мая 2019

У меня есть два объекта в Java: Screen и FavoriteScreen,

Атрибуты экрана: screenId владелец, ...

FavoriteScreen: screenId Экран: сама сущность и другие поля, связанные с другими таблицами.

Моя проблема в том, что я хочу получить все любимые экраны с помощью Hibernate Join. Я решил проблему с помощью оператора SQL, подобного этому:

выберите * на панели инструментов, где находится идентификатор (выберите идентификатор на любимой панели инструментов)

есть ли способ решить это с помощью Hibernate.

Спасибо

1 Ответ

0 голосов
/ 09 мая 2019

Я полагаю, что это ваш запрос:

select * from the Screen where id in (select screen_id from the FavoriteScreen)

, если это так, вы можете добавить отношение OneToOne между FavoriteScreen и Screen.Затем извлеките Screen из FavoriteScreen.

@Entity
public class FavoriteScreen {
   ... attributes...

   @OneToOne(fetch = FetchType.EAGER, cascade = CascadeType.ALL)
   @JoinColumn(name = "screen_id")
   Screen screen
}

Это создаст однозначную связь между Screen и FavoriteScreen.и вы можете получить экран, используя.

entityManager.createQuery("Select FS.screen From FavoriteScreen FS ").getResultList()
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...