Прежде всего вам следует изучить дизайн ваших сущностей. Я почти уверен, что вам не нужен порядок внутри каждого вашего пакета как объекта.
Да, возможно, вам понадобится orderId в качестве внешнего ключа, но не order.
В моей практике это было причиной cycli c SQL выбирает ---> вы выбираете порядок -> порядок выбора пакетов -> каждый пакет снова выбирает порядок и так далее. Для решения этой проблемы в Hibernate есть несколько хаков, но их просто нет)
Итак, я предлагаю вам:
@Entity
@Table(name="orders")
public class Order {
@Id
private int id;
private String name;
@OneToMany(cascade = CascadeType.PERSIST) // CascadeType.PERSIST is needed so that when saving an entity, its collection is saved (or updated)
@JoinColumn(name="order_id")
private List<Package> packages = new ArrayList<>();
// getters setters
}
@Entity
@Table(name="packages")
public class Package {
@Id
private int id;
private String packageName;
private int orderId; // order foreign key instead of entity
// getters setters
}
Для сохранения вам необходимо:
Order order = new Order;
order.setPackages(newPackageList)
orderRepo.save(order); // method from JPA CrudRepoposiry