0

我正在开发一个 JSF 项目并在 mysql 上使用 Hibernate

您可能知道(在 Hibernate 文档中),joins 使用实体之间的关联。因此,具有内部联接的示例正确查询将是:

select from Person p join p.classes c where c.room = :roomNum

bu 在我的例子中,关联的实体是一个包含所需实体的 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!

任何帮助将不胜感激。

4

1 回答 1

1
select f from FamilyGuy f 
inner join f.children child
where child.expenses < :threshold

就像其他任何 toMany 关联一样。

如你所说; 加入使用协会。因此,您不能指定实体的名称 ( join Child),但必须指定关联:join f.children...就像问题开头的示例一样。

于 2013-10-29T16:44:14.440 回答