我是坚持世界的新手:)可能是我的问题非常愚蠢,可能是我的方法不正确但这就是我想问一些专家。所以我的问题是为与另一个实体相关的实体编写查询。
@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
答案 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();