Я использую JPA + Hibernate в моем проекте. Я должен получить данные из уже существующей базы данных и не могу вносить в нее изменения.
Схема похожа на то, что существует несколько организаций, у каждой компании есть много счетов, и у каждого счета есть много строк.
organization
{
id;
name;
...
}
bill
{
id;
organization o;
amount;
....
(EAGER, mappedBy=bill)
List<Lineitem> lineitems;
}
lineitem
{
id;
organization o;
(EAGER)
bill b;
itemCode
.....
}
Индексы в схеме базы данных (в настоящее время присутствуют)
таблица счетов
-> orgId (не уникальный индекс)
стол lineitem
-> orgId, billId
Когда запрашивается счет, он делает это первым
Select *
from bills
where id = ?
что хорошо, так как это выборка по первичному ключу. Теперь он получает строковые элементы
делает
select *
from lineitems
where billId = ?
Нет индекса на уровне базы данных в billId. Существует не уникальный составной индекс для orgId, billId.
Что мне нужно поместить, чтобы hibernate извлекал lineitems, используя orgId вместе с billId .. as ..
select *
from lineitems
where billId = ? and orgId = ?
Я не знал, что будет подходящим названием.
Спасибо.