В hibernate есть способ получить список объектов, упорядоченных по свойству объекта отношения многие-к-одному - PullRequest
0 голосов
/ 31 марта 2011

У меня есть отношение «многие-к-одному», как показано ниже

    <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_table и имеет свойство company_id.Есть ли способ получить список лиц, заказанных Company.company_id через спящий режим.Поэтому, когда я запрашиваю

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

, я получаю список лиц, упорядоченных по company_id.Единственный синтаксис addOrder, который я обнаружил, принимал имя свойства вроде

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

Я не мог найти, как ссылаться на имя свойства стороннего объекта, похожего на

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

Спасибо.

1 Ответ

0 голосов
/ 01 апреля 2011

Попробуй это.Я думаю, что это поможет.База на основе теории критериев.Критерии не могут сделать неявное соединение.поэтому мы делаем это явным.

Пример:

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

Надеюсь, что это полезно для вас.

...