Как добавить записи в связанные таблицы, если в одной из них разрешены только уникальные значения?

У меня 2 связанные таблицы "марка" и "модель" (@ManyToOne) и в обеих есть поля с ограничением - уникальные значения

Таблица makes

@Column(unique = true)
private String make;

Таблица model

@Column(unique = true)
private String model;

Когда вставляем в БД автомобиль (код упрошён)

makes.setMake("Porsche");
model.setModel("911");

em.persist(makes);
em.persist(model);

запись размещается, если модель или марка не повторяются в таблицах модель или марка соответственно.

Если, например, марка Porsche уже есть, то вылетит ошибка и модель не добавится тоже.

Как добавлять новые модели для Porsche, если эта марка уже есть в таблице?

P.S. В Entity и БД указана связь, что у Porsche может быть много моделей, почему БД или EntityManager не могут просто сохранить новую модель и связь с повторяющейся маркой? Или могут? Мне что в 2021 году с последней версией CУБД и JakartaEE 9 нужно писать код с запросом в БД, есть у меня марка Porsche или нет?


Ответы (0 шт):