Java Hibernate查询API-映射中键属性的条件

Java Hibernate查询API-映射中键属性的条件,java,hibernate3,Java,Hibernate3,假设我有这样的模型: public class ProjectModel { ... private Map<UserModel, ProjectUserRelations> usersRelations = new HashMap<UserModel, ProjectUserRelations>(); } 当然,用户被映射为: <class name="UserModel" table="USER"> <

假设我有这样的模型:

public class ProjectModel {
        ...
        private Map<UserModel, ProjectUserRelations> usersRelations = new HashMap<UserModel, ProjectUserRelations>();
}
当然,用户被映射为:

<class name="UserModel"
    table="USER">
    <id name="objectId" column="objectId" type="java.lang.Long">
</class>

非常感谢您的帮助。

我不确定使用hibernate criteria API可以实现您想要做的事情(在map的关键属性上设置一个多对多建模的标准)

您是否尝试过:

hbCriteria.createCriteria("usersRelations").add(Restrictions.eq("userModel.userId", criteria.getUserId()));

否,您建议的是设置映射值属性的条件,我想设置映射键属性的条件,因为UserModel是映射中的键?您想找到所有具有特定用户模型的用户关系,对吗?是的,没错。但您所写的是“usersRelations”中名为“userModel”的属性的条件,即值。至少这是hibernate在我复制粘贴此文件时在例外情况下所说的。我没有理由不相信他:)
<class name="UserModel"
    table="USER">
    <id name="objectId" column="objectId" type="java.lang.Long">
</class>
org.hibernate.QueryException: could not resolve property: usersRelations.objectId of: ProjectModel
hbCriteria.createCriteria("usersRelations").add(Restrictions.eq("userModel.userId", criteria.getUserId()));