0

私は次のように多対一の関係を持っています

    <hibernate-mapping default-lazy="false" package="com.my.sample.data">
  <class name="Person" table="person_table">
<!-- other stuff -->
 <many-to-one class="Company" column="p_id" fetch="join" insert="false" name="company" update="false" not-found="ignore" not-null="false" />

Company は company_table にマップされ、プロパティ company_id があります。休止状態を介して Company.company_id によって注文された Person のリストを取得する方法はありますか? だから私がクエリするとき

  items = (List<A>) getSession().createCriteria(Person.class)                        
                        .add(Restrictions.in("person_id", pIds)
                        ).list();

したがって、company_id で並べられた Person のリストが作成されます。私が見つけた唯一のaddOrder構文は、次のようなプロパティ名を取りました

addOrder(Order.asc("person_id").` 

に似た異物のプロパティ名を参照する方法が見つかりませんでした

addOrder.Order.asc("company.company_id")

ありがとう。

4

1 に答える 1

0

これを試して。これが役立つと思います。基準理論に基づく。基準は暗黙的な結合を行うことができません。だから私たちはそれを明示します。

例:

items = (List<A>) getSession().createCriteria(Person.class)                        
                        .add(Restrictions.in("person_id", pIds)
                        .createCriteria("company")
                        .addOrder("company_id");
                        ).list();

これがあなたに役立つことを願っています。

于 2011-04-01T01:26:34.440 に答える