我在Java中有两个实体:Screen和FavoriteScreen,
屏幕属性: 屏幕ID 楼主,...
最喜欢的屏幕: 屏幕ID 屏幕:实体本身 以及与其他表相关的其他字段。
我的问题是我想使用 Hibernate Join 获取所有最喜欢的屏幕。 我用这样的 SQL 语句解决了这个问题:
从 id 所在的仪表板中选择 *(从最喜欢的仪表板中选择 id)
有什么办法可以使用Hibernate来解决这个问题吗?
谢谢
最佳答案
我相信这是您的查询:
select * from the Screen where id in (select screen_id from the favoriteScreen)
如果是这样,您可以在FavoriteScreen 和Screen 之间添加OneToOne 关系。然后从FavoriteScreen中获取Screen。
@Entity
public class FavoriteScreen {
... attributes...
@OneToOne(fetch = FetchType.EAGER, cascade = CascadeType.ALL)
@JoinColumn(name = "screen_id")
Screen screen
}
它将在屏幕和 Collection 夹屏幕之间创建一对一的关联。 您可以使用获取屏幕。
entityManager.createQuery("Select FS.screen From FavoriteScreen FS ").getResultList()
关于java - 如何使用 Hibernate 在两个实体(不相关的实体)之间进行联接,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56061223/