2011-08-30 9 views
0

におけるキーの財産上の基準は、のは、私がこのようなモデルを持っているとしましょうユーザーを与えたプロジェクト 私はこれを試しました:にHibernateクエリAPIマップ

基準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> 

現在の実装にgetを使用する場合:

org.hibernate.QueryException: could not resolve property: usersRelations.objectId of: ProjectModel 

すべてのヘルプ感謝を。

答えて

0

ハイバーネーション基準APIを使用して、何をしようとしているのかわからない(多対多としてモデル化されたマップのキープロパティの基準を設定する)ことができます。

あなたが試してみました:

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

を?

+0

いいえ、地図の**値**のプロパティの基準を設定することをお勧めしました。地図の**キー**のプロパティに基準を設定します。 –

+0

私はUserModelが地図のキーだと思いましたか?特定のUserModelを持つすべてのユーザーリレーションシップを検索する必要があります。 –

+0

はい、正確です。しかし、あなたが書いたのは、値の "usersRelations"の "userModel"という名前のプロパティに関する基準です。少なくともこれは、コピーして貼り付けたときに、休止状態が例外的に言うことです。私は彼を信じない理由がない:) –