Ограниченная дочерняя запись получена в JPA Eclipselink - PullRequest
0 голосов
/ 22 января 2019

У меня есть родительский объект, у которого есть список дочерних объектов.Есть несколько новых дочерних сущностей, которые созданы и установлены в родительскую сущность.Фрагмент кода показан ниже.

public class ParentEntity {
@OneToMany(fetch=FetchType.LAZY, mappedBy="parentField", cascade=CascadeType.ALL)
   private List<ChildEntityA> childAList = new ArrayList<>();
}

public class BusinessLogic {
 public void methodA() {
   ParentEntity parent = parentRepository.getById();
   parent.setFieldA("fieldA");
   ChildEntityA child1 = new ChildEntityA();
   child1.setField1("field1");
   ChildEntityA child2 = new ChildEntityA();
   child2.setField1("field1");
   List<ChildEntityA> childAList = new ArrayList<>();
   childAList.add(child1);
   childAList.add(child2);
   parent.setChildAList(childAList);//This triggers a select call on DB table associated with Child A and fetches all the records
   entityManager.merge(parent);
}
}

Моя проблема заключается в parent.setChildAList (childAList);запускает запрос SELECT для дочерней таблицы БД и извлекает миллионы ненужных записей.Есть ли способ ограничить количество извлекаемых дочерних записей или предотвратить это все вместе?Выделение всего вызывает сбой GC и влияет на производительность.

JPA - это спецификация, а Eclipselink - мой поставщик.Любая помощь в этом будет высоко оценена.Заранее спасибо.

...