java - JPA/Hibernate - 如何急切地获取 EmbeddedId?

标签 java hibernate jpa

我有以下实体:

@Entity(name = "game_users")
public class GameUser {

    private GameUsersPK primaryKey;

    @EmbeddedId
    public GameUsersPK getPrimaryKey() {
        return primaryKey;
    }
    ...
}

具有以下 PK:

@Embeddable
public class GameUsersPK implements Serializable {
    @ManyToOne
    private Game game;

    @ManyToOne
    private User user;
    ...
}

当我通过执行查询 GameUser 时:

GameUser gameUser = em.createQuery("from game_users", GameUser.class).setMaxResults(1).getSingleResult();

我注意到 Hibernate 正在执行两个查询 - 一个来自 game_users,另一个来自 games left external join users

我可以让 Hibernate 在一个查询中获取所有实体 - 来自 game_users、games、users 吗?

谢谢。

最佳答案

select gu from GameUser gu
left join fetch gu.primaryKey.game
left join fetch gu.primaryKey.user

阅读Hibernate documentation about HQL and associations .

关于java - JPA/Hibernate - 如何急切地获取 EmbeddedId?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10865024/

相关文章:

java - Java序列化-实现细节泄漏

java - 如何使用 Mapstruct 映射包含列表的对象

java - 抛出你自己的异常

javax.validation.ConstraintViolationException : validation failed for classes during update time for groups

java - 错误映射@OneToMany与JPA和Hibernate的关系

java - 在Spring boot应用程序中动态创建模式

JAVA not in gzip format错误

java - 消息 -"could not read a hi value - you need to populate the table: hibernate_sequence"

java - hibernate和mysql的Persistence.xml设置显示 "No Persistence provider for EntityManager"

java - 具有备用目标列的 hibernate 映射