私はHibernate 3.3.2を使用しています。私はB.多対多プロパティのHibernate投影
に多対多の関係をマッププロパティbを持つクラスA、クラスAには、次のマッピングがあります:私は、次のことをしようとしています
<set name="b" table="a_b" lazy="true">
<key column="id_a"/>
<many-to-many class="B" column="id_b" outer-join="auto" />
</set>
を:
Criteria c = HibernateUtil.getSession().createCriteria(A.class);
ProjectionList pl = Projections.projectionList();
pl.add(Projections.property("id_a"), "id_a");
pl.add(Projections.property("b"), "b");
c.setProjection(pl);
c.add(Restrictions.eq("id", id));
Object o = c.list();
このコードはBのインスタンスをロードしません。返されるArrayListのbに対応する要素はnullです。あなたは何か考えていますか?
ありがとうございました。
私はc.createAlias( "b"、 "b")を試しましたが、何も変更されませんでした。私はそれが関係の基数と関係があると考えています。 – Marco
それはうまくいくはずです、あなたはあなたの更新されたコードを投稿できますか? –
コードは次のとおりです: 'Criteria c = HibernateUtil.getSession()。createCriteria(A.class); ProjectionList pl = Projections.projectionList(); pl.add(Projections.property( "id_a")、 "id_a"); pl.add(Projections.property( "b")、 "b"); c.setProjection(pl); c.createAlias( "b"、 "b"); c.add(Restrictions.eq( "id"、id)); オブジェクトo = c.list(); ' – Marco