我在Java中有两个实体:Screen和FavoriteScreen,
屏幕属性: screenId 所有者,...
收藏夹屏幕: screenId 屏幕:实体本身 以及与其他表格相关的其他字段。
我的问题是我想使用Hibernate Join获取所有喜欢的屏幕。 我用这样的SQL语句解决了这个问题:
从ID位于其中的仪表板中选择*(从收藏夹仪表板中选择ID)
有什么办法可以使用Hibernate解决它。
谢谢
答案 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()