По сути, вам нужна оптимистическая блокировка для отношений один-ко-многим, когда родитель логически «владеет» своими дочерними элементами, другими словами, когда родительские и дочерние элементы изменяются одновременно в целом.Order
, состоящий из OrderLine
s, которые представлены пользователю в одной форме, может быть примером такого рода отношений.
В противном случае, когда дети должны быть изменены индивидуально, они должны бытьисключен из оптимистической блокировки.Topic
с Post
s может быть примером этого случая.
Технически говоря, этот вопрос связан с направленностью отношений.Целью оптимистической блокировки является предотвращение потерянных модификаций, поэтому вам необходимо включить ее для отношений один-ко-многим, когда возможны потерянные модификации.Это происходит, когда родитель является собственной стороной отношений, другими словами, когда отношения один ко многим однонаправлены (обратите внимание, что это естественный выбор для моделирования отношений, таких как Order
- OrderLine
),
В случае двунаправленных отношений «один ко многим» сторона «многие» является стороной-владельцем, поэтому модификации отношений на стороне «один» не влияют на базу данных, поэтому онине может быть потеряно.