私がそのようなモデルを持っているとしましょう:
public class ProjectModel {
...
private Map<UserModel, ProjectUserRelations> usersRelations = new HashMap<UserModel, ProjectUserRelations>();
}
次のように hbm にマッピングされます。
...
<map name="usersRelations" cascade="save-update" table="PROJECT_MEMBERS">
<key column="project_id" />
<map-key-many-to-many column="user_id" class="UserModel"/>
<many-to-many column="properties_id" class="ProjectUserRelations"/>
</map>
...
Hibernate Criteria を使用して、ユーザーを指定したプロジェクトを一覧表示するにはどうすればよいですか? 私はこれで試しました:
基準 hbCriteria = session.createCriteria(ProjectModel.class);
if(criteria.getUserId() != null) {
hbCriteria.createCriteria("usersRelations").add(Restrictions.eq("userId", criteria.getUserId()));
}
もちろん、ユーザーはマッピングされています:
<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
どんな助けでも感謝します。