Потому что вызов flush () для сохранения всех сущностей из памяти в базу данных. Так что, если я использую call слишком много ненужных flush (), это может занять много времени, поэтому не лучший выбор для производительности. Вот сценарий, который я не знаю, когда вызывать flush ()?
//Order and Item have Bidirectional Relationships
Order ord = New ord("my first order");
Item item = New Item("tv",10);
//...process item and ord object
em.persist(ord);//em is an instance of EntityManager
em.flush();// No.1 flush()
item.setOrder(ord);
em.persist(item);
Set<Item> items= new HashSet<Item>();
items.add(item);
ord.setItems(items);
em.flush();// No.2 flush()
Мой вопрос таков: можно было бы избежать колла флеша №1 или нет?
Я беспокоился о том, чтобы: item.setOrder (ord) , нам нужен идентификатор базы данных ord. И вызов только em.persist (ord) не может сгенерировать идентификатор базы данных, поэтому мне нужно вызвать em.flush () перед item.setOrder (ord) . Так что вы думаете, ребята?
Заранее спасибо.