Критерии гибернации Коллекция объектов - PullRequest
0 голосов
/ 21 октября 2011

У меня есть класс с коллекцией объектов. Пример:

class XmlRequest{
            Long id;
             List<PersonNmDTO> persons;
     }

class PersonNmDTO{
    String firstName;
    String lastName;
}

Я хочу сгенерировать SQL следующим образом: выберите * из таблицы, где (имя = xxxx и фамилия = гггг) или (имя = aaaa и фамилия = bbbb) или (имя = pppp и фамилия = qqqq ') .... ...

Как использовать Критерии Hibernate для генерации этих родов SQL?

1 Ответ

1 голос
/ 21 октября 2011

Это действительно базовое использование. Вы прочитали документацию ?

Criteria c = session.createCriteria(Person.class, "person");
Disjunction or = Restrictions.disjunction();
or.add(Restrictions.and(Restrictions.eq("person.firstName", "xxxx"),
                        Restrictions.eq("person.lastName", "yyyy")));
or.add(Restrictions.and(Restrictions.eq("person.firstName", "aaaa"),
                        Restrictions.eq("person.lastName", "bbbb")));

// ...
criteria.add(or);
List<Person> result = (List<Person>) c.list();

Обратите внимание, что DTO должен означать «объект передачи данных», что означает передачу данных без переноса постоянных объектов. Так что называть вашу постоянную сущность PersonNmDTO действительно сомнительно.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...