Отображение списка дочерних объектов в JPA - один ко многим
Я разрабатываю свое первое приложение с использованием JPA. Там у меня есть требование, чтобы родительский объект имел список дочерних объектов, и этот список отдельно не заносится в его таблицу.
Вот мои сущности.
Нежный:-
@Entity
@Table(name = "tender")
public class Tender {
@Id
@Column(name = "tender_id", unique = true, nullable = false)
@GeneratedValue(strategy = GenerationType.AUTO)
private long id;
@Column(name = "name")
private String name;
@Column(name = "description")
private String description;
// what are the annotations here?
private List<TenderAddress> addresses;
// constructors
// getters ans setters
}
TenderAddress: -
@Entity
@Table(name = "tender_address")
public class TenderAddress {
@Id
@Column(name = "id", unique = true, nullable = false)
@GeneratedValue
private long id;
// what are the annotations here?
private Tender tender;
@Column(name = "address", nullable = false)
private String address;
// constructors
//getters and setters
}
Я устанавливаю адреса для объекта тендера, используя метод определения тендера. Так я сохраняю объекты Tender в базе данных. Я использую менеджер сущностей для этого.
@Transactional
public Tender saveNewTender(Tender tender) {
entityManager.persist(tender);
entityManager.flush();
return tender;
}
Что мне нужно, это сохранить объект Address одновременно и таблицу адресов, чтобы иметь ссылку на объект тендера, который инкапсулирует конкретный адрес.
Я попытался с двунаправленным сопоставлением один ко многим, используя @JoinColumn
а также @OneToMany(mappedBy="tender", cascade = CascadeType.ALL)
, Но он пометил ссылочный столбец как NULL(поле идентификатора тендера в таблице адресов)
Теперь мой вопрос: мое требование действительно? Должен ли я сначала сохранить объект тендера и взять его идентификатор, а затем сохранить объект Address?
Если мое требование действительно, как я могу выполнить его? Что вы можете порекомендовать мне? Пожалуйста, предоставьте мне аннотации, которые мне нужны в моих организациях.