Я нахожусь в Hibernate (5.1), и мне нужно добавить элемент в поле коллекции для всех объектов, соответствующих критериям, без необходимости их извлечения.JPA добавить элемент в коллекцию, используя CriteriaUpdate
@Entity
public class Order {
@Id
public Long id;
public Date placedOn;
@ManyToMany
public List<Item> items;
}
Мне нужно добавить тот же экземпляр нового Item
всех Order
с размещенным после определенной даты. Мне нужно использовать API критериев, а не JPQL.
Возможно ли это? Я не могу найти документацию по этому вопросу.
P.S. Случай order/items является всего лишь примером, я ищу обобщенный метод, и мне также нужно будет его адаптировать для удаления элементов из коллекций.
Я боялся этого. Я знаю, что это не SQL 'UPDATE', но я думал, что JPA имеет какой-то JPQL' UPDATE Order o INSERT: item INTO o.items' и его метод относительных критериев. Так как в своих реализациях JPA в своих возможностях делают эти «INSERT's» при обновлении полей сбора, я надеялся, что они также предоставили средства, позволяющие пользователям делать такие операции программно ... –
Нет, он не может этого сделать. Потому что вы не можете сделать это ни в одном выражении SQL. –
JPA не делает магии, он просто имеет другой язык запросов, который в конце концов преобразуется в SQL. –