2

この式をCriteria式に変換するのに問題があります。

SELECT profile_profiles.profile_sup_id 
  FROM profil
  INNER JOIN profile_profiles ON profile_profiles.profile_id = profil.id 
        AND profil.id = 4

誰か助けてもらえますか?

私は1つのテーブル'プロファイル'多対多とrefelxiveを持っています

プロファイル1---profile_profiles---プロファイル2

public class Profil implements Serializable {

    private static final long serialVersionUID = 1L;
    private Long id;
    private String libelle;
    private Set<Profil> profiles = new HashSet<Profil>(0);
...
}

hbm

<set name="profiles" table="profile_profiles" cascade="all">
            <key column="profile_id" />
            <many-to-many column="profile_sup_id" class="com.steriamedshore.proboard.model.referentiel.Profil" />
        </set>
4

2 に答える 2

0
Criteria c = session.createCriteria(Profil.class, "profil");
c.createAlias("profil.profiles", "supProfil");
c.add(Restrictions.eq("profil.id", 4);
c.setProjection(Projections.property("supProfil.id"));

上記は、AFAIKで、結合テーブルからプロファイルテーブルへの追加の結合を行う必要がありますが、SQLクエリと同じものを返す必要があります。

于 2012-07-31T17:07:55.287 に答える
0

どうもありがとうございました@JBNizet

私は実際に昨日解決策を見つけました:

hibernateCriteria.createCriteria("profil").createAlias("profiles", "ps").add( Restrictions.eq("ps.id",superieurCriteria.getProfilId()) ) ;

平和。

于 2012-08-01T10:10:29.887 に答える