Запрос гибернации для объектов с коллекциями - PullRequest
1 голос
/ 21 января 2011

Для структуры следующим образом:

class Person
{
   Integer personID;
   String personName
   List<Pet> pets;
}

class Pet
{
  String petID;
  Integer personID;
  String petName;
  Integer petNum;
}

Вышеуказанное хранится в БД следующим образом:

person_ID  person Name 
1            Peter
2            Buch
3            POLR

pet_id  person id petName petNum
1         1        "AAA"    3
2         1        "BBB"    3
3         1        "CCC"    4

Я хочу иметь возможность искать людей на основе личностиимя и домашние животные, которыми он владеет.Таким образом, входные данные для запроса Hibernate могут быть следующими:

person name = Peter
petName = "AAA"
petNum = 3
petName = "BBB"
petNum = 4

Так что в вышеприведенном случае он не должен возвращать никаких результатов, потому что serach не указал другого питомца, которого имеет Питер.

такой поиск возможен с HQL или Criteria API Hibernate?

Спасибо, Nishanth

1 Ответ

0 голосов
/ 21 января 2011

Я считаю, что такой поиск возможен.

с Criteria API попробуйте что-то вроде этого:

 getSession().createCriteria(Person.class)
    .addRestriction(Restrictions.eq("name", personName)
    .createAlias("pets","pets")
    .addRestriction(Restrictions.eq("pets.name", petName))
    .list();
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...