2013-12-13 3 views
0

У меня есть некоторые сомнения относительно того, как, например, @OneToMany может быть эффективным. Давайте предположим, что объект А есть коллекции объектов B внутри него и этой коллекции есть 100k объектовJPA ORM - эффективные отношения?

class A { 
    List<B> b; //.size() == 100.000 
    ... 
} 

Даже я отмечаю б на время выборки ленивы, что бы следующие псевдокод делать?

Если я прав, потому что я сделал доступ к полю, он должен быть загружен, да? Итак, просто чтобы сделать одну вставку, я загрузил 100k строк из БД?

Может ли кто-нибудь уточнить мои сомнения?

ответ

1

Да, вы правы: все 100 тыс. Строк будут загружены.

Что делать?

Я полагаю, что существует также обратная связь от B до A. В этом случае, чтобы избежать проблемы с производительностью, вы сохраняете экземпляр B, когда A имеет свой список B, который не загружен. В качестве альтернативы вы можете сделать собственный запрос.

+0

Спасибо за разъяснение. – abc

Смежные вопросы