【发布时间】:2015-03-13 07:42:43
【问题描述】:
我有两张表(关于足球):联赛和球队是一对多的关系。现在我想获得所有联赛,但仅限于那些名字开头的球队,例如与“S”。
到目前为止,我有这个:
Query query = session.createQuery("select l from League l left join l.teams as t with t.name like :name order by l.id");
query.setParameter("name", "S%");
List<League> list = query.list();
此查询返回所有联赛,也包括所有球队。看起来条件被忽略了。
我想要的只是获得所有联赛以及属于特定联赛的那些球队(由某些条件指定)。所以有可能获得没有团队的联赛。
League 类中的映射是
@OneToMany(mappedBy = "league", fetch = FetchType.EAGER)
private List<Team> teams;
在 Team 类中:
@ManyToOne
@JoinColumn(name = "LEAGUE_FK")
private League league;
我正在使用 Oracle 数据库。 查询有什么问题?
提前致谢。
【问题讨论】:
标签: oracle hibernate hql conditional-statements one-to-many