Я занимаюсь разработкой веб-приложения с использованием JSF и JPA (ссылка на Eclipse). У меня есть две сущности с двунаправленными отношениями OneToMany. Объект-владелец - это контакт, а целевой объект - клиент. Один клиент может иметь несколько контактов, таких как электронная почта, телефон и т. Д. Когда конечный пользователь добавляет нового клиента, он также сразу добавляет контакты. Необходимо отменить сохранение нового клиента, даже после добавления контактов этому клиенту. Я попытался добавить эту функциональность, но потерпел неудачу следующим образом.
Может ли этот сенарио быть напрямую достигнут постоянством?
Контактное лицо
....
public class Contact implements Serializable {
....
@ManyToOne
Customer customer;
....
Клиентский субъект
....
public class Customer implements Serializable {
....
@OneToMany(mappedBy = "customer")
private List<Contact> contacts;
....
Добавление нового контакта в Customer (текущий объект является объектом класса Customer)
Contact contact = new Contact();
contact.setCustomer(current);
....
current.getInstitutionContacts().add(contact);
Это работает, когда ток уже сохранен. Если я попытался добавить контакт, чтобы сохранить его, есть java.lang.NullPointerException
.
Я могу обойти эту функциональность, но есть ли какой-то способ, которым мы можем просто собирать контакты в массив и сохранять их только тогда, когда (и только если) клиент сохраняется? С помощью каскадного сохранения или отложенной выборки и т. Д.?