查询具有onetomany关系的两个实体

时间:2012-01-19 14:30:07

标签: java hibernate persistence

我是坚持世界的新手:)可能是我的问题非常愚蠢,可能是我的方法不正确但这就是我想问一些专家。所以我的问题是为与另一个实体相关的实体编写查询。

@Entity
public class Team {
  String teameName, 
  int teamId,

  @OneToMany(cascade = CascadeType.ALL, fetch = FetchType.EAGER)
  @JoinColumn(name = "team_id", referencedColumnName = "teamId")
  private Set<Player> players;
  /**
     more code for getters and setter for all fields       
  */       
}

@Entity
public class Player {
    String PlayerName,
    String address 
    /**
     *more code for getters and setter for everything       
    */
}

因此,多个玩家可以属于一个团队,但每个玩家必须拥有一个独特的团队,这样做就是将teamId作为玩家的外键。 据我所知,这应该是正确的。但现在问题来了。 现在我想查询所有“playerName = X”和“teamId = Y”的玩家 我不知道如何编写这样的查询。

任何人都可以向我推荐一些东西。

提前致谢。

Jeena

1 个答案:

答案 0 :(得分:2)

你想要read about HQL,即Hibernate查询语言。它有点像SQL。

基本上你定义了hql string,然后执行查询。像

这样的东西
String hql = "select * from Player p where p.PlayerName = :name and team = :team";
Query query = session.createQuery(hql);
query.setParameter("name", "Joe");
query.setParameter("team", team);
List list = query.list();
相关问题