Я пытаюсь использовать ORDER BY в запросе для сортировки по полю в ссылочном объекте. Например, со следующими классами:JPA2/Hibernate Order С помощью поля в ссылочной таблице/объекте
@Entity
class Phone
{
@Id
Long id;
@ManyToOne
Person owner;
}
@Entity
class Person
{
@Id
Long id;
String name;
}
Я хочу перечислить все телефоны, заказанные по имени владельца. Это работает по большей части, за исключением того, что он исключает телефоны, у которых нет владельца. (IE., Владелец - null).
Например,
{
etc...
// Count number of phones in database
Query q = em.createQuery("SELECT COUNT(*) FROM Phone");
Number n = (Number)q.getSingleResult();
// N shows 10 phones
q = em.createQuery("SELECT row FROM Phone row ORDER BY row.owner.name");
List<Phone> phones = q.getResultList();
// phones.size() is only 5???
}
Использование ORDER BY COALESCE (row.owner.name, '') не принести недостающие строки либо!
Любая помощь была бы замечательной, спасибо!
Вы должны указать внешнее_соединение там. Когда вы включаете владельца в запрос, вы неявно выполняете внутреннее соединение. – zmf