2015-08-17 5 views
0

Я иду через стратегию Identity Sequencing и наткнулся ниже заявление IDребенка не назначается от родителей на упорствовать

ребенка не назначается от родителей на упорствовать.

Общая проблема заключается в том, что сгенерированный идентификатор является частью идентификатора дочернего объекта через однократное отображение OneToOne или ManyToOne. В этом случае , поскольку JPA требует, чтобы дочерний элемент определял дублирующее базовое сопоставление для идентификатора, его идентификатор будет вставлен как null. Одним из решений этой проблемы является , чтобы отметить столбец на отображение Id в ребенка как insertable=false, updateable=false, и определить OneToOne или ManyToOne с помощью обычного JoinColumn это обеспечит ключевое поле иностранного заполняется по OneToOne или ManyToOne не Основа. Другой вариант заключается в том, чтобы сначала сохранить родительский элемент, а затем вызвать flush() перед сохранением дочернего элемента.

Может кто-нибудь объяснить, в чем проблема, которую автор пытается передать нам?

Также я вижу insertable=false, updateable=false, похоже, мы делаем столбец как только для чтения, это то, что означают атрибуты? Почему мы создаем столбец, который доступен только для чтения (без вставки &), можете ли вы привести мне пример?

ответ

1

В основном то, что автор пытается сказать, заключается в том, что в случае родительских отношений с дочерними элементами мы должны сначала перенести ребенка, а затем связать ребенка с родителем, а затем сохранить родительский элемент или позволить родительскому лицу оставаться на месте. Это можно сделать с помощью insertable=false, updateable=false.

Что означает insertable=false, updateable=false означает, что ответственность за создание/обновление соответствующего объекта не входит в дочерний объект. У вас есть ребенок и родитель. Вы хотите добавить insertable = false, updatable = false в отношения @OneToMany с дочерним объектом в родительском объекте просто потому, что дочерний объект не должен создавать или обновлять родителя. Это наоборот.

Смежные вопросы