如何在两个实体(不相关实体)之间使用休眠模式进行联接

时间:2019-05-09 14:03:37

标签: java sql hibernate

我在Java中有两个实体:Screen和FavoriteScreen,

屏幕属性:     screenId     所有者,...

收藏夹屏幕:     screenId     屏幕:实体本身     以及与其他表格相关的其他字段。

我的问题是我想使用Hibernate Join获取所有喜欢的屏幕。 我用这样的SQL语句解决了这个问题:

从ID位于其中的仪表板中选择*(从收藏夹仪表板中选择ID)

有什么办法可以使用Hibernate解决它。

谢谢

1 个答案:

答案 0 :(得分:0)

我相信这是您的查询:

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

如果可以,则可以在FavoriteScreen和Screen之间添加OneToOne关系。然后从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()