Текущая установка:Mapping Один ко многим из другой таблицы
Entity A:
fieldA;
@OneToMany(mappedBy="fieldA")
List<B> Bs;
Entity B:
fieldA;
fieldB;
fieldX;
Entity А отображает таблицу А, и Entity B карты в таблице В. FieldA является основным ключом к таблице А, и & FieldB поля А составляют составные первичные ключи в таблице B
Проблема заключается в том, что при загрузке A этой установкой мы возвращаем тысячи объектов в списке B, в то время как нам остается только знать, какое значение fieldB находится в объекте B Чтобы сохранить память, мы хотим иметь List of FieldB, а не List of Bs в сущности A и полностью избавиться от th e объект класса B.
Так выглядит более как этот
Entity A:
fieldA;
List<fieldB> Bs;
Возможно ли это? Ну, конечно, я надеюсь, но я точно не знаю. Будет ли @SecondaryTable с аннотацией, как:
@SecondaryTables({
@SecondaryTable(name="Table B", pkJoinColumns={
@PrimaryKeyJoinColumn(name="fieldA")}
)
с
@JoinColumn(name="fieldB", table="Table B")
List<fieldB> Bs;
сделать трюк? Проблема в том, что я все еще хочу иметь сопоставление отношений @OneToMany, поэтому я думаю, что мне нужно включить это где-то также.
Чтобы быть ясным, я хочу избавиться от класса B от моего кода Java и переместить поле B в класс A, поддерживая отношения @OneToMany. Но все же уметь читать Список и сохранить его обратно в таблицу B.
Вы говорите, что это невозможно сделать без написания класса обертки? FieldB - всего лишь примитив. Было бы гораздо полезнее память, чтобы вернуть поле B, а не даже класс-оболочку fieldB. Мы возвращаем сотни тысяч объектов в этот список, поэтому память вызывает беспокойство. – James
Чтобы быть ясным, я хочу избавиться от класса B от кода Java и переместить поле B в класс A, поддерживая отношения @OneToMany. Но все же сможете прочитать список и вернуть его обратно в таблицу B. –
James
Да, это то, что я говорю. Если вы хотите работать на таком уровне оптимизации, избегайте Hibernate вообще! Кроме того, не стоит загружать сотни тысяч записей в память, вы обычно используете разбиение на страницы для таких случаев. – isah