Как мне сопоставить коллекции Hibernate с применением принудительного ограничения столбца NOT NULL в Oracle?

У меня есть 2 таблицы: ЗАПРОС и ЭЛЕМЕНТ с отношением "один ко многим", так что в запросе много элементов.

Я хотел бы применить ограничение Oracle NOT NULL для столбца внешнего ключа ELEMENT.ENQUIRY_ID, так как это наилучшая практика. У меня есть следующая коллекция на объекте Inquiry:

@OneToMany(cascade = CascadeType.ALL)
@JoinColumn(name = "ENQUIRY_ID", referencedColumnName = "ID")
private Set<Element> elements = new HashSet<Element>();

Когда я применяю ограничение NOT NULL, я получаю следующую трассировку стека:

Причина: java.sql.BatchUpdateException: ORA-01400: невозможно вставить NULL в ("ELEMENT"."ENQUIRY_ID")

Таким образом, Hibernate, очевидно, сохраняет коллекцию элементов перед родительским запросом, а затем возвращается и выполняет ОБНОВЛЕНИЕ для поля внешнего ключа.

Есть ли способ применить ограничение NOT NULL для поля внешнего ключа коллекции?

1 ответ

Ты пытался nullable = false в @JoinColumn?

Другие вопросы по тегам