Прежде всего, используя JPA, вы отображаете объект Java на строку таблицы SQL и наоборот.
- Когда вы добавляете аннотацию @GeneratedValue для параметра id, под капотом JPA будет рассматривать идентификатор как эквивалент SQL первичного ключа.Поэтому нет необходимости устанавливать идентификатор, когда вы сохраняете объект Java;идентификатор будет сгенерирован автоматически.
- Когда вы устанавливаете аннотацию @OneToMany, эквивалентность в SQL является отношением один-ко-многим.Если вы не хотите устанавливать платежи, просто не делайте этого ...
Некоторый код для сохранения:
1.Вы должны ввести EntityManager
@PersistenceContext(unitName = "myPU")
private EntityManager entityManager;
2.Сохраните POJObjcte (Java Transaction API (JTA) будет обрабатывать его)
@Transactional(value = TxType.REQUIRED)
public TransactionType create(@NotNull TransactionType item) {
item.setPayment(payments); //it is not mandatory if you do not want to have payments
item = entityManager.persist(item);
return item;
}
После сохранения элемента идентификатор будет установлен автоматически.