我正在开发一个JSF项目并在mysql上使用Hibernate
您可能知道(它在Hibernate文档中),连接使用实体之间的关联。因此,使用内部联接的示例正确查询将是:
select from Person p join p.classes c where c.room = :roomNum
在我的例子中,关联实体是包含所需实体的HashMap。
一些代码会有所帮助:
public FamilyGuy{
private String name;
private BigDecimal income;
private HashMap<String, Child> children = new HashMap<Language, Child>();
....
}
public Child{
private String name;
private BigDecimal expenses;
....
}
我需要的是这样的查询(以下查询不起作用):
select from FamilyGuy oppressed inner join Child happy where happy.expenses < :threshold
我得到的例外是:
javax.servlet.ServletException: Path expected for join!
任何帮助将不胜感激。
答案 0 :(得分:1)
select f from FamilyGuy f
inner join f.children child
where child.expenses < :threshold
就像任何其他toMany协会一样。
正如你所说;加入使用关联。因此,您无法指定实体的名称(join Child
),但必须指定关联:join f.children
...就像您问题开头的示例中一样。