Hibernate Custom HQL для этого отображения - PullRequest
1 голос
/ 03 октября 2011

У меня есть следующие таблицы

------------
BAR
------------
ID
number

------------
ZOO
------------
ID

------------
FOO
------------
ID

------------
MAPPER
------------
ID
FOO
BAR
ZOO

Теперь я хочу получить все ZOO для конкретного FOO, поэтому я сделаю

select ZOO from MAPPER where zoo = someZoo

, но теперь я хочу, чтобы эти ZOO были отсортированы по количеству голосов.так что SQL будет

SELECT FOOBAR.ZOO
FROM  mapper AS mapper,
BAR AS bar
WHERE mapper.FOO=SOME_VALUE AND mapper.BAR=bar.id order by bar.number desc

Но теперь я хочу сделать это независимым от БД способом в Hibernate. Как бы я поступил?

У меня есть настройки сопоставленных сущностей Я использую поддержку шаблонов Spring Hibernate

public class Foo{
Long id;
}


public class Zoo{
Long id;
}

public class Bar{
Long id;
Long num;
}

public class Mapper{
Long id;
Long foo;
Long bar;
Long zoo;

}

1 Ответ

2 голосов
/ 03 октября 2011

Класс Mapper должен быть:

public class Mapper {
    Long id;
    Foo foo;
    Bar bar;
    Zoo zoo;
}

Теперь вы можете написать следующий HSQL-запрос:

select mapper.zoo from Mapper mapper where mapper.foo=:foo order by mapper.bar.num desc
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...