0

次のエンティティがあります。

@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 が 2 つのクエリを実行していることに気付きgame_usersましたgames left outer join users

Hibernate に 1 つのクエリですべてのエンティティをフェッチさせることはできますfrom game_users, games, usersか?

ありがとう。

4

1 に答える 1

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

HQL と関連付けに関する Hibernateのドキュメントを読んでください。

于 2012-06-02T19:15:41.260 に答える