Вот мой код:
Объекты:
@Entity
public class A {
@Id
Long aId;
...
}
@Entity
public class B {
@Id
Long bId;
Long aId;
...
}
Услуги:
@Transactional
public void multiInsert() {
A a = createA();
aRepository.save(a);
B b = createBFromA();
bRepository.save(b);
}
Когда я пытаюсь сделать bRepository.save()
, происходит сбой со следующей ошибкой:
Причина: java.sql.SQLException: Невозможно добавить или обновить дочернюю строку: ограничение внешнего ключа не выполнено (b
, CONSTRAINT a_to_b
FOREIGN KEY (aId
) ССЫЛКИ a
(aId
) )
Я предполагаю, что a
не сохраняется до того, как мы пытаемся сохранить b
, из-за которого ограничение внешнего ключа не выполняется.
Я знаю, что для внешнего ключа я должен использовать @JoinColumns. Но есть ли способ заставить его работать без этого.